PDO get the last ID inserted PDO get the last ID inserted php php

PDO get the last ID inserted


That's because that's an SQL function, not PHP. You can use PDO::lastInsertId().

Like:

$stmt = $db->prepare("...");$stmt->execute();$id = $db->lastInsertId();

If you want to do it with SQL instead of the PDO API, you would do it like a normal select query:

$stmt = $db->query("SELECT LAST_INSERT_ID()");$lastId = $stmt->fetchColumn();


lastInsertId() only work after the INSERT query.

Correct:

$stmt = $this->conn->prepare("INSERT INTO users(userName,userEmail,userPass)                               VALUES(?,?,?);");$sonuc = $stmt->execute([$username,$email,$pass]);$LAST_ID = $this->conn->lastInsertId();

Incorrect:

$stmt = $this->conn->prepare("SELECT * FROM users");$sonuc = $stmt->execute();$LAST_ID = $this->conn->lastInsertId(); //always return string(1)=0


You can get the id of the last transaction by running lastInsertId() method on the connection object($conn).

Like this $lid = $conn->lastInsertId();

Please check out the docs https://www.php.net/manual/en/language.oop5.basic.php