Heim > Datenbank > MySQL-Tutorial > Wie rufe ich gespeicherte Prozeduren mit Ausgabeparametern mithilfe von PDO auf, wenn ein bekannter Fehler auftritt?

Wie rufe ich gespeicherte Prozeduren mit Ausgabeparametern mithilfe von PDO auf, wenn ein bekannter Fehler auftritt?

Linda Hamilton
Freigeben: 2024-11-07 15:53:03
Original
767 Leute haben es durchsucht

How to Call Stored Procedures with Output Parameters Using PDO When Encountering a Known Bug?

Aufrufen einer gespeicherten Prozedur mit Ausgabeparametern mithilfe von PDO

Beim Versuch, eine gespeicherte Prozedur mit einem Ausgabeparameter mithilfe von PDO auszuführen, ist dies unbedingt zu berücksichtigen ein bekannter Fehler. Dieser Fehler kann zu folgendem Fehler führen, obwohl die Prozedur beim direkten Aufruf aus MySQL wie erwartet funktioniert:

"SQLSTATE[42000]: Syntaxfehler oder Zugriffsverletzung: 1414 OUT oder INOUT Argument 1 für Routine mydb.proc_OUT ist keine Variable oder NEUE Pseudovariable im BEFORE-Trigger"

Um dieses Problem zu beheben, wird empfohlen, die gespeicherte Prozedur mit dem folgenden Ansatz auszuführen:

  1. Aufruf die gespeicherte Prozedur und wählen Sie den Ausgabeparameter aus:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
Nach dem Login kopieren
  1. Bereiten Sie die Anweisung vor und wählen Sie den Ausgabeparameter aus:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt->execute(array($someInParameter1, $someInParameter2));
Nach dem Login kopieren

Wenn Sie diesem Ansatz folgen, können Sie gespeicherte Prozeduren mit Ausgabeparametern mithilfe von PDO effektiv aufrufen, selbst wenn der oben genannte Fehler auftritt.

Das obige ist der detaillierte Inhalt vonWie rufe ich gespeicherte Prozeduren mit Ausgabeparametern mithilfe von PDO auf, wenn ein bekannter Fehler auftritt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage