Heim > Datenbank > MySQL-Tutorial > Wie rufe ich LAST_INSERT_ID() aus einer gespeicherten MySQL-Prozedur mit PHP PDO ab?

Wie rufe ich LAST_INSERT_ID() aus einer gespeicherten MySQL-Prozedur mit PHP PDO ab?

Susan Sarandon
Freigeben: 2024-11-07 12:00:05
Original
780 Leute haben es durchsucht

How to Retrieve LAST_INSERT_ID() from MySQL Stored Procedure Using PHP PDO?

LAST_INSERT_ID() aus einer gespeicherten MySQL-Prozedur mit PHP PDO abrufen

Das Abrufen des LAST_INSERT_ID()-Werts aus einer gespeicherten MySQL-Prozedur in PHP PDO kann eine verwirrende Aufgabe sein. Trotz umfangreicher Dokumentation bleibt es eine häufige Quelle von Herausforderungen für Entwickler. Lassen Sie uns eine Lösung für dieses Problem finden.

Das Hauptproblem liegt in der Tatsache, dass MySQL Variablen für IN-, INOUT- und OUT-Parameter in gespeicherten Prozeduren verwendet. Um die LAST_INSERT_ID() zu erhalten, ist ein zweistufiger Prozess erforderlich:

Schritt 1: Führen Sie die gespeicherte Prozedur mit Variablen aus

$stmt = $db->prepare("CALL simpleProcedure(:name, :returnid)");
$stmt->bindValue(':name', $name, PDO::PARAM_STR);
$stmt->bindValue(':returnid', $returnid, PDO::PARAM_INT, 11);
$stmt->execute();
Nach dem Login kopieren

Dieser Schritt führt die gespeicherte Prozedur aus Prozedur, die Eingabewerte übergibt und Variablen deklariert, um den LAST_INSERT_ID()-Wert zu empfangen. Wir können jedoch nicht direkt auf den Wert der PHP-Variablen zugreifen.

Schritt 2: Werte der Variablen abrufen

Um die LAST_INSERT_ID() zu erhalten, müssen wir ausführen eine separate Abfrage zum Abrufen der den SQL-Variablen zugewiesenen Werte. Dazu gehört das Festlegen der SQL-Benutzervariablen und das Ausführen einer Abfrage zur Auswahl ihrer Werte.

$sql = "SELECT @returnid AS last_insert_id";
$result = $db->query($sql)->fetch();
$last_insert_id = $result['last_insert_id'];
Nach dem Login kopieren

Durch Befolgen dieser Schritte können Sie den Wert LAST_INSERT_ID() erfolgreich aus einer gespeicherten MySQL-Prozedur mithilfe von PHP PDO abrufen. Es ist wichtig zu beachten, dass das Binden von PHP-Variablen an INOUT- oder OUT-Parameter zu Fehlern führen kann. Verwenden Sie stattdessen die SQL-Benutzervariablen, um variable Parameter zu verarbeiten.

Das obige ist der detaillierte Inhalt vonWie rufe ich LAST_INSERT_ID() aus einer gespeicherten MySQL-Prozedur mit PHP PDO 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