Heim  >  Artikel  >  Datenbank  >  Wie rufe ich Ausgabeparameter aus gespeicherten MySQL-Prozeduren in PHP ab?

Wie rufe ich Ausgabeparameter aus gespeicherten MySQL-Prozeduren in PHP ab?

Susan Sarandon
Susan SarandonOriginal
2024-11-06 19:13:02136Durchsuche

How to Retrieve Output Parameters from MySQL Stored Procedures in PHP?

Aufrufen von gespeicherten MySQL-Prozeduren mit Eingabe- und Ausgabeparametern in PHP

Bei der Arbeit mit gespeicherten MySQL-Prozeduren ist es oft notwendig, und zu übergeben Daten aus der Datenbank abrufen. Hier kommen Ein- und Ausgabeparameter ins Spiel. Es kann jedoch schwierig sein, sowohl Eingabe- als auch Ausgabeparameter zu verwenden, insbesondere ohne die Verwendung von „INOUT“-Parametern.

Verstehen der Eingabe- und Ausgabeparameter der Prozedur

Betrachten wir Folgendes: Beispiel einer gespeicherten Prozedur in der MySQL-Datenbank:

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
)

Diese Prozedur erwartet drei Eingabeparameter (input_param_1, input_param_2, input_param_3) und drei Ausgabeparameter (output_sum, Output_product, Output_average). Die Eingabeparameter werden zur Berechnung der Ausgabeparameter verwendet.

Eingabe- und Ausgabeparameter mit MySQLi binden

Um diese gespeicherte Prozedur aus PHP mit MySQLi aufzurufen, benötigen Sie um sowohl die Eingabe- als auch die Ausgabeparameter zu binden. Im folgenden Code verwenden wir die prozedurale Schnittstelle, um eine Verbindung herzustellen, den Aufruf der gespeicherten Prozedur vorzubereiten, die Eingabeparameter zu binden, den Aufruf auszuführen und die Ausgabeparameter aus Benutzervariablen abzurufen:

<?php

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

mysqli_stmt_close($call);
mysqli_close($mysqli);

?>

Im Im obigen Code bereitet die Funktion mysqli_prepare den Aufruf der gespeicherten Prozedur vor. Die Funktion mysqli_stmt_bind_param bindet die Eingabeparameter an den Aufruf. Die Funktion mysqli_stmt_execute führt den Aufruf aus.

Nach der Ausführung der gespeicherten Prozedur müssen wir die Ausgabeparameter aus den Benutzervariablen mithilfe einer separaten SELECT-Anweisung abrufen. Dies liegt daran, dass MySQLi keine native Unterstützung für das direkte Abrufen von Ausgabeparametern bietet.

Fazit

Wenn Sie verstehen, wie Sie mit MySQLi sowohl Eingabe- als auch Ausgabeparameter in gespeicherten MySQL-Prozeduren binden, werden Sie kann effektiv mit Ihrer Datenbank interagieren und die notwendigen Daten für Ihre PHP-Anwendungen abrufen.

Das obige ist der detaillierte Inhalt vonWie rufe ich Ausgabeparameter aus gespeicherten MySQL-Prozeduren in PHP ab?. 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