PHP: Aufruf der MySQL Stored Procedure mit den Parametern INPUT und OUTPUT (NICHT "INOUT")

8

Von PHP möchte ich eine gespeicherte Prozedur in MySQL aufrufen. Die Prozedur verwendet die Eingabeparameter und - nicht "INOUT" .

Als einfaches Beispiel sage ich, dass ich die folgende gespeicherte Prozedur in MySQL habe:

%Vor%

Nun, auf der Seite PHP-Skript / Seite, sage ich, dass ich die folgenden Variablen habe (wir nennen sie "proc input variables"), die ich der gespeicherten Prozedur als input -Parameter zuführen möchte wenn ich es anrufe:

%Vor%

Nehmen wir an, dass ich auf der Seite PHP / Seite auch die folgenden Variablen habe (wir nennen sie "proc output variables"), die ich als output Parameter in die Stored Procedure einspeisen möchte um durch die gespeicherte Prozedur festzulegen, wenn ich sie anrufe:

%Vor%

Also, im Wesentlichen, auf der PHP-Skript / Seite Seite, was ich tun möchte, im Wesentlichen (ich realisiere, der folgende Code ist nicht gültig) , ist ...

%Vor%

... und, einmal aufgerufen, der folgende PHP-Code ...

%Vor%

... sollte die folgende Ausgabe erzeugen:

%Vor%

Ein Vorbehalt ist, dass ich, wenn überhaupt möglich, dies mit den MySQLi prozeduralen Funktionen / Schnittstellen tun könnte. Wenn nicht möglich, dann aber kann ich es zur Arbeit bringen was ich verwenden werde.

Ich programmiere schon seit einiger Zeit, aber die PHP-Sprache ist ein relativ neues Unterfangen für mich. Ich habe Tonnen von Tutorials zum Aufrufen von MySQL gespeicherten Prozeduren von PHP gefunden. Einige sind Anleitungen zum Aufrufen gespeicherter Prozeduren mit input -Parametern, einige sind Anleitungen zum Aufrufen gespeicherter Prozeduren mit output -Parametern, und einige sind Anleitungen zum Aufrufen gespeicherter Prozeduren mit inout Parameter. Ich habe keine Anleitungen oder Beispiele zum Aufrufen gespeicherter Prozeduren gefunden, die beide Eingabe und Ausgabeparameter gleichzeitig verwenden, während nicht die Verwendung von " Inout "Parameter. Ich habe Probleme herauszufinden, wie man die Parameterbindungen (z. B. mysqli_stmt_bind_param und mysqli_stmt_bind_result) codiert und alles richtig funktioniert.

Jede Hilfe wird sehr geschätzt und ich bedanke mich im Voraus!

    
John Doe 09.06.2013, 21:51
quelle

2 Antworten

16

Leider hat MySQL keine native Unterstützung für Ausgabesproc-Parameter; Man muss stattdessen Benutzervariablen in MySQL ausgeben und dann die Werte mit einer separaten SELECT -Anweisung abrufen .

Verwenden der prozeduralen Schnittstelle:

%Vor%

Oder über die objektorientierte Schnittstelle:

%Vor%     
eggyal 10.06.2013, 00:18
quelle
-1

Hier ist eine Variation der obigen Antwort, PHP-Code, um Ihre gespeicherte MySQL-Prozedur aufzurufen:

%Vor%     
Carlo Carandang 02.12.2017 05:37
quelle

Tags und Links