Ist es möglich, mysqli_fetch_object mit einer vorbereiteten Anweisung zu verwenden?

8

Alle Beispiele, die ich mit mysqli_fetch_object benutze, verwenden mysql_query() , ich kann es nicht mit vorbereiteten Anweisungen arbeiten. Wer weiß, was mit diesem Code-Snippet falsch ist, da fetch_object null zurückgibt.

%Vor%

Die Ausgabe ist:

%Vor%     
BeWarned 29.12.2009, 19:28
quelle

3 Antworten

0

Ich glaube nicht, dass die Schnittstelle so funktioniert.

Nach der Dokumentation und den Beispielen ( Ссылка ) scheint $ stmt- & gt; execute () gibt kein Resultset zurück, sondern einen booleschen Wert, der Erfolg / Misserfolg anzeigt ( Ссылка ) ). Um das Ergebnis tatsächlich zu erhalten, müssen Sie Variablen an die Ergebnismenge (nach dem Ausführungsaufruf) binden, indem Sie $ stmt- & gt; bind_result ( Ссылка ).

Nachdem Sie das alles getan haben, können Sie wiederholt $ stmt- & gt; fetch () () aufrufen, um die gebundenen Variablen mit den Spaltenwerten aus der aktuellen Zeile zu füllen. Ich sehe keine Erwähnung von $ stmt- & gt; fetch_object () noch sehe ich, wie diese Schnittstelle mit einem Variablenbindungsschema wie beschrieben funktionieren könnte.

Dies ist also die Geschichte für das "normale" Ergebnis, das von mysqli vorbereiteten Anweisungen abgerufen wird.

In Ihrem Code gibt es etwas, von dem ich vermute, dass es sich um einen Fehler handelt, oder zumindest bin ich mir nicht sicher, ob Sie das beabsichtigt haben. Sie Linie:

%Vor%

ordnet die Resultset-Metadaten, die selbst als Ergebnismenge dargestellt werden, der Variable $ result zu. Laut dem Dokument ( Ссылка ) können Sie nur eine Teilmenge der Methoden verwenden auf diese 'speziellen' Arten von Resultsets, und fetch_object () gehört nicht dazu (zumindest ist es nicht explizit aufgeführt).

Vielleicht ist es ein Fehler, dass fetch_object () nicht für diese Metadaten-Resultsets implementiert ist, vielleicht sollten Sie einen Fehler bei bugs.mysql.com darüber.

    
Roland Bouman 29.12.2009, 20:01
quelle
11

Dies ist der Code, den ich zum Erstellen eines Objekts aus einer vorbereiteten Anweisung verwende.
Es könnte vielleicht in einer Unterklasse von mysqli verwendet werden?

%Vor%     
Zorfling 09.02.2010 07:38
quelle
7

MySql Native Driver Erweiterung ( mysqlnd ), hat die get_result Methode:

%Vor%     
peter 29.07.2013 10:01
quelle

Tags und Links