Heim  >  Artikel  >  Datenbank  >  Wie behebe ich den Fehler „OUT- oder INOUT-Argument ... ist keine Variable“ beim Aufrufen gespeicherter Prozeduren mit PDO?

Wie behebe ich den Fehler „OUT- oder INOUT-Argument ... ist keine Variable“ beim Aufrufen gespeicherter Prozeduren mit PDO?

Linda Hamilton
Linda HamiltonOriginal
2024-11-07 00:38:03192Durchsuche

How to Resolve

Aufrufen einer gespeicherten Prozedur mit Out-Parameter mithilfe von PDO

Diese Frage untersucht ein Problem, das beim Versuch auftritt, eine gespeicherte Prozedur mit einem Ausgabeparameter mithilfe von PDO in PHP aufzurufen. Es erscheint die Fehlermeldung „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 Problem werden die folgenden Schritte empfohlen:

  1. Verwenden Sie eine separate Abfrage zum Abrufen des Ausgabeparameters:Anstatt den Ausgabeparameter direkt zu binden, führen Sie eine andere Abfrage aus, um den Wert abzurufen Ausgabeparameter nach der Ausführung der gespeicherten Prozedur. Zum Beispiel:
$dbh->query("CALL SomeStoredProcedure($someInParameter1, $someInParameter2, @someOutParameter)");
$dbh->query("SELECT @someOutParameter");
  1. Fügen Sie „SELECT @someOutParameter“ in die gespeicherte Prozedur ein: Alternativ fügen Sie „SELECT @someOutParameter“ in die gespeicherte Prozedur ein und binden Sie dann das Ergebnis mithilfe vorbereiteter Anweisungen in den Ausgabeparameter umwandeln. Zum Beispiel:
$stmt = $dbh->prepare("CALL SomeStoredProcedure(?, ?)");
$stmt ->execute(array($someInParameter1, $someInParameter2));

Durch die Implementierung dieser Lösungen sollte der Fehler im Zusammenhang mit dem Ausgabeparameter in der gespeicherten Prozedur behoben werden.

Das obige ist der detaillierte Inhalt vonWie behebe ich den Fehler „OUT- oder INOUT-Argument ... ist keine Variable“ beim Aufrufen gespeicherter Prozeduren mit PDO?. 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