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
Linda HamiltonOriginal
2024-11-07 15:53:03751Durchsuche

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");
  1. Bereiten Sie die Anweisung vor und wählen Sie den Ausgabeparameter aus:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt->execute(array($someInParameter1, $someInParameter2));

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!

Stellungnahme:
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