PHP – دریافت شناسه آخرین رکورد درج شده در MySQL

وقتی داده‌ای را در یک جدول با فیلد AUTO_INCREMENT درج می‌کنید، ممکن است بخواهید شناسه (ID) رکورد آخرین درج شده را بلافاصله بعد از عملیات درج یا به‌روزرسانی دریافت کنید. در این مقاله، نحوه دریافت شناسه آخرین رکورد درج شده با استفاده از MySQLi و PDO را بررسی خواهیم کرد.

استفاده از فیلد AUTO_INCREMENT

فرض کنید که جدول “MyGuests” شما به صورت زیر است:

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
)

در اینجا، ستون “id” به صورت AUTO_INCREMENT تعریف شده است. هنگامی که رکوردی جدید به این جدول اضافه می‌شود، MySQL به طور خودکار مقدار این ستون را افزایش می‌دهد و شما می‌توانید این مقدار را دریافت کنید.

دریافت شناسه آخرین رکورد درج شده با استفاده از MySQLi

1. MySQLi به روش شیء‌گرا

در این مثال، ما از MySQLi به روش شیء‌گرا برای درج یک رکورد جدید و دریافت شناسه آخرین رکورد درج شده استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// ایجاد اتصال
$conn = new mysqli($servername, $username, $password, $dbname);

// بررسی اتصال
if ($conn->connect_error) {
  die("اتصال ناموفق: " . $conn->connect_error);
}

$sql = "INSERT INTO MyGuests (firstname, lastname, email)
VALUES ('John', 'Doe', 'john@example.com')";

if ($conn->query($sql) === TRUE) {
  // دریافت شناسه آخرین رکورد درج شده
  $last_id = $conn->insert_id;
  echo "رکورد جدید با موفقیت ایجاد شد. شناسه آخرین رکورد درج شده: " . $last_id;
} else {
  echo "خطا: " . $sql . "<br>" . $conn->error;
}

$conn->close();
?>

2. MySQLi به روش رویه‌ای

در این مثال، ما از MySQLi به روش رویه‌ای برای درج یک رکورد جدید و دریافت شناسه آخرین رکورد درج شده استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";

// ایجاد اتصال
$conn = mysqli_connect($servername, $username, $password, $dbname);

// بررسی اتصال
if (!$conn) {
  die("اتصال ناموفق: " . mysqli_connect_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 "رکورد جدید با موفقیت ایجاد شد. شناسه آخرین رکورد درج شده: " . $last_id;
} else {
  echo "خطا: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);
?>

دریافت شناسه آخرین رکورد درج شده با استفاده از PDO

در این مثال، از PDO برای درج یک رکورد جدید و دریافت شناسه آخرین رکورد درج شده استفاده می‌کنیم:

<?php
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDBPDO";

try {
  $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
  // تنظیم حالت خطا به استثنا
  $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  
  $sql = "INSERT INTO MyGuests (firstname, lastname, email)
  VALUES ('John', 'Doe', 'john@example.com')";
  
  // استفاده از exec() زیرا نتیجه‌ای برنمی‌گردد
  $conn->exec($sql);
  
  // دریافت شناسه آخرین رکورد درج شده
  $last_id = $conn->lastInsertId();
  echo "رکورد جدید با موفقیت ایجاد شد. شناسه آخرین رکورد درج شده: " . $last_id;
} catch(PDOException $e) {
  echo $sql . "<br>" . $e->getMessage();
}

$conn = null;
?>

با استفاده از این روش‌ها، می‌توانید به راحتی شناسه آخرین رکورد درج شده در پایگاه داده MySQL خود را دریافت کنید. این اطلاعات می‌تواند برای پیگیری رکوردها و انجام عملیات‌های بیشتر مفید باشد.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
Python - محدود کردن داده (MongoDB Limit)

Python – محدود کردن داده (MongoDB Limit)

Python MongoDB محدود کردن نتایج برای محدود کردن نتایج در MongoDB، از متد limit() استفاده می‌کنیم. متد limit() یک...

بیشتر بخوانید
Python - بروزرسانی (MongoDB Update)

Python – بروزرسانی (MongoDB Update)

به‌روزرسانی یک رکورد برای به‌روزرسانی یک رکورد یا سند در MongoDB، از متد update_one() استفاده می‌کنیم. پارامتر اول متد...

بیشتر بخوانید
Python - حذف کالکشن (MongoDB Drop Collection)

Python – حذف کالکشن (MongoDB Drop Collection)

حذف کالکشن شما می‌توانید یک جدول یا کالکشن در MongoDB را با استفاده از متد drop() حذف کنید. مثالحذف...

بیشتر بخوانید

نظرات

سوالات و نظراتتون رو با ما به اشتراک بذارید

برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.