Heim  >  Artikel  >  Datenbank  >  Wie führe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern mit PHP aus?

Wie führe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern mit PHP aus?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-08 11:25:01963Durchsuche

How to Execute MySQL Stored Procedures with Both Input and Output Parameters Using PHP?

Aufrufen gespeicherter MySQL-Prozeduren mit Eingabe- und Ausgabeparametern mit PHP

In PHP das Ausführen gespeicherter MySQL-Prozeduren, die sowohl Eingabe- als auch Ausgabeparameter erfordern kann eine Herausforderung sein. Während MySQLi spezifische Funktionen für die separate Verarbeitung von Eingabe- und Ausgabeparametern bereitstellt, gibt es für dieses Szenario keine direkte Unterstützung.

Um diese Einschränkung zu überwinden, ist eine Problemumgehung mit MySQL-Benutzervariablen erforderlich. Hier ist eine Aufschlüsselung der Funktionsweise:

Verwendung der prozeduralen Schnittstelle MySQLi:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = mysqli_connect('host', 'user', 'password', 'database');

$call = mysqli_prepare($mysqli, 'CALL test_proc(?, ?, ?, @sum, @product, @average)');
mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);
mysqli_stmt_execute($call);

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];

Hier initialisieren wir zunächst die Eingabevariablen und stellen eine Verbindung zur MySQL-Datenbank her . Zur Ausführung der gespeicherten Prozedur wird eine vorbereitete Anweisung mit gebundenen Eingabeparametern verwendet. Nach der Ausführung wird eine separate Abfrage verwendet, um die in MySQL-Benutzervariablen gespeicherten Ausgabeparameter abzurufen.

Verwendung der objektorientierten MySQLi-Schnittstelle:

$procInput1 = 123;
$procInput2 = 456;
$procInput3 = 789;

$mysqli = new mysqli('host', 'user', 'password', 'database');

$call = $mysqli->prepare('CALL test_proc(?, ?, ?, @sum, @product, @average)');
$call->bind_param('iii', $procInput1, $procInput2, $procInput3);
$call->execute();

$select = $mysqli->query('SELECT @sum, @product, @average');
$result = $select->fetch_assoc();
$procOutput_sum = $result['@sum'];
$procOutput_product = $result['@product'];
$procOutput_average = $result['@average'];

Dieser Code demonstriert Derselbe Ansatz verwendet die objektorientierte Schnittstelle, bei der die Datenbankverbindung und die Ausführung gespeicherter Prozeduren über Objektmethoden gehandhabt werden.

Durch die Nutzung der Problemumgehung mit MySQL-Benutzervariablen können Sie gespeicherte Prozeduren effektiv sowohl mit Eingabe- als auch mit Ausgabeparametern ausführen in PHP über die MySQLi-Schnittstelle.

Das obige ist der detaillierte Inhalt vonWie führe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern mit PHP aus?. 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