Heim  >  Artikel  >  Datenbank  >  Wie rufe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern in PHP auf?

Wie rufe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern in PHP auf?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-07 04:09:03140Durchsuche

How to Call MySQL Stored Procedures with Both Input and Output Parameters in PHP?

Aufrufen von gespeicherten MySQL-Prozeduren mit Eingabe- und Ausgabeparametern (nicht „INOUT“-Parametern) in PHP

Einführung:

Das Aufrufen gespeicherter MySQL-Prozeduren aus PHP ist eine häufige Aufgabe, aber wenn es um Eingabe- und Ausgabeparameter geht, kann sie komplexer sein. Dieser Artikel führt Sie durch den spezifischen Ansatz, der erforderlich ist, um solche Aufrufe über die prozedurale Schnittstelle von MySQLi durchzuführen.

Konfiguration der gespeicherten Prozedur:

Betrachten Sie die folgende gespeicherte Prozedur in MySQL:

DELIMITER $$
CREATE PROCEDURE `test_proc`(
    IN input_param_1 INT,
    IN input_param_2 INT,
    IN input_param_3 INT,
    OUT output_sum INT,
    OUT output_product INT,
    OUT output_average INT
)
BEGIN
    SET output_sum = input_param_1 + input_param_2 + input_param_3;
    SET output_product = input_param_1 * input_param_2 * input_param_3;
    SET output_average = (input_param_1 + input_param_2 + input_param_3) / 3;
END$$
DELIMITER ;

Bindende Eingabe- und Ausgabeparameter:

Um die gespeicherte Prozedur aufzurufen und sowohl Eingabe- als auch Ausgabeparameter anzugeben, verwenden Sie die Funktion mysqli_stmt_bind_param():

mysqli_stmt_bind_param($call, 'iii', $procInput1, $procInput2, $procInput3);

wobei $procInput1, $procInput2 und $procInput3 die Eingabeparameter sind.

Um die Ausgabeparameter abzurufen, müssen Sie Benutzervariablen in Ihrer gespeicherten Prozedur verwenden und anschließend deren Werte abrufen Ausführen des Aufrufs:

$select = mysqli_query($mysqli, 'SELECT @sum, @product, @average');
$result = mysqli_fetch_assoc($select);

wobei $select eine Abfrage ist, die die von der gespeicherten Prozedur festgelegten Benutzervariablen (@sum, @product, @average) abruft.

Code Beispiel:

Hier ist ein vollständiges Codebeispiel:

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

$mysqli = mysqli_connect();

$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'];

Indem Sie diese Schritte befolgen, können Sie erfolgreich gespeicherte MySQL-Prozeduren aufrufen, die sowohl Eingabe- als auch Ausgabeparameter erfordern.

Das obige ist der detaillierte Inhalt vonWie rufe ich gespeicherte MySQL-Prozeduren mit Eingabe- und Ausgabeparametern in PHP auf?. 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