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 خود را دریافت کنید. این اطلاعات می‌تواند برای پیگیری رکوردها و انجام عملیات‌های بیشتر مفید باشد.

پست های مرتبط

مطالعه این پست ها رو از دست ندین!
JavaScript - تاریخ‌ها (Dates)

JavaScript – تاریخ‌ها (Dates)

آبجکت‌های تاریخ (Date) در جاوااسکریپت آبجکت‌های تاریخ در جاوااسکریپت به ما امکان کار با تاریخ و زمان را می‌دهند....

بیشتر بخوانید
JavaScript - آرایه‌های ثابت (Array Const)

JavaScript – آرایه‌های ثابت (Array Const)

جاوااسکریپت: تعریف آرایه با const در سال 2015، جاوااسکریپت کلمه کلیدی مهمی به نام const را معرفی کرد. این...

بیشتر بخوانید
JavaScript - تکرار آرایه‌ها (Array Iteration)

JavaScript – تکرار آرایه‌ها (Array Iteration)

جاوا اسکریپت: تکرار بر روی آرایه‌ها جاوا اسکریپت روش‌های مختلفی برای تکرار (Iteration) بر روی آرایه‌ها ارائه می‌دهد که...

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

نظرات

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

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