Heim > Datenbank > MySQL-Tutorial > Hauptteil

Wie rufe ich mithilfe von PDO die Ausgabe gespeicherter Prozeduren mit OUT-Parametern ab?

Linda Hamilton
Freigeben: 2024-11-07 08:12:02
Original
795 Leute haben es durchsucht

How to Retrieve Output from Stored Procedures with OUT Parameters Using PDO?

Gespeicherte Prozeduren mit OUT-Parametern mithilfe von PDO aufrufen

In der Datenbankprogrammierung sind gespeicherte Prozeduren für die Kapselung komplexer Datenbankoperationen unerlässlich. Das Abrufen der Ausgabe von gespeicherten Prozeduren mithilfe von PDO kann eine Herausforderung sein.

Problem:
Beim Aufrufen einer gespeicherten Prozedur mit einem OUT-Parameter mithilfe von PDO kann ein Fehler wie der folgende auftreten:

PDOException: SQLSTATE[42000]: Syntax error or access violation: 1414 OUT or INOUT argument 1 for routine mydb.proc_OUT is not a variable or NEW pseudo-variable in BEFORE trigger
Nach dem Login kopieren

Lösung:
PDO erwartet, dass OUT-Parameter über eine separate Abfrage abgerufen werden. Die folgenden Schritte beschreiben die richtige Vorgehensweise:

  1. Bereiten Sie die PDO-Anweisung vor:

    $stmt = $db->prepare("CALL proc_OUT(?)");
    Nach dem Login kopieren
  2. Binden der OUT-Parameter:

    $stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
    Nach dem Login kopieren
  3. Führen Sie die gespeicherte Prozedur aus:

    $stmt->execute();
    Nach dem Login kopieren
  4. Fragen Sie den OUT-Parameter ab:

    $stmt2 = $db->query("SELECT @return_value");
    $row = $stmt2->fetch(PDO::FETCH_NUM);
    $return_value = $row[0];
    Nach dem Login kopieren

Beispiel:
Hier ist ein Beispiel für den Aufruf einer gespeicherten Prozedur mit einem OUT-Parameter:

$db = new PDO("mysql:host=localhost;dbname=mydb", "username", "password");

// Stored procedure definition
$sql = "CREATE PROCEDURE proc_OUT (OUT var1 VARCHAR(100))
BEGIN
    SET var1 = 'This is a test';
END";
$db->query($sql);

// Call the stored procedure
$stmt = $db->prepare("CALL proc_OUT(?)");
$stmt->bindParam(1, $return_value, PDO::PARAM_STR, 4000);
$stmt->execute();

// Query the OUT parameter
$stmt2 = $db->query("SELECT @return_value");
$row = $stmt2->fetch(PDO::FETCH_NUM);
$return_value = $row[0];

echo $return_value; // Output: 'This is a test'
Nach dem Login kopieren

Wenn Sie diesem Ansatz folgen, können Sie gespeicherte Prozeduren mit OUT-Parametern mithilfe von PDO erfolgreich aufrufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich mithilfe von PDO die Ausgabe gespeicherter Prozeduren mit OUT-Parametern ab?. 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
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!