شناسه آخرین رکورد درج شده را دریافت کنید(Get ID of The Last Inserted Record)
اگر در جدولی با فیلد AUTO_INCREMENT یک INSERT یا UPDATE انجام دهیم، می توانیم شناسه آخرین رکورد درج شده/به روز شده را فوراً دریافت کنید.
در جدول "MyGuests"، ستون "id" یک AUTO_INCREMENT است فیلد:
CREATE TABLE MyGuests (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
firstname VARCHAR(30) NOT NULL,
lastname VARCHAR(30) NOT NULL,
email VARCHAR(50),
reg_date TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
)
نمونههای زیر برابر با مثالهای صفحه قبل هستند (PHP دادهها را درج کنید MySQL)، با این تفاوت که یک خط کد برای بازیابی شناسه اضافه کرده ایم از آخرین رکورد درج شده ما همچنین آخرین شناسه درج شده را بازتاب می دهیم:
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if ($conn->query($sql) === TRUE) { $last_id = $conn->insert_id; echo "New record created successfully. Last inserted ID is: " . $last_id; } else { echo "Error: " . $sql . "<br>" . $conn->error; }
$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
if (mysqli_query($conn, $sql)) { $last_id = mysqli_insert_id($conn); echo "New record created successfully. Last inserted ID is: " . $last_id; } else { echo "Error: " . $sql . "<br>" . mysqli_error($conn); }
try { $conn = new PDO("mysql:host=$serve ame;dbname=$dbname", $use ame, $password); // set the PDO error mode to exception $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";
// use exec() because no results are returned $conn->exec($sql); $last_id = $conn->lastInsertId(); echo "New record created successfully. Last inserted ID is: " . $last_id; } catch(PDOException $e) { echo $sql . "<br>" . $e->getMessage(); }