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.
MySql Native Driver Erweiterung ( mysqlnd ), hat die get_result Methode:
%Vor%