شناسه آخرین رکورد درج شده را دریافت کنید(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
)، با این تفاوت که یک خط کد برای بازیابی شناسه اضافه کرده ایم
از آخرین رکورد درج شده ما همچنین آخرین شناسه درج شده را بازتاب می دهیم:




مثال (MySQLi Object-oriented)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";
$password = "password";
$dbname = "myDB";

// Create connection
$conn = new mysqli($serve
ame, $use
ame, $password, $dbname);

// Check connection

if ($conn->connect_error) {

    die("Connection failed: " . $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 "New record created successfully. Last inserted ID is: " . $last_id;
} else {
    echo "Error: " . $sql . "<br>" . $conn->error;
}

$conn->close();

?>

















مثال (MySQLi Procedural)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";
$password = "password";
$dbname = "myDB";

// Create connection

$conn = mysqli_connect($serve
ame, $use
ame, $password, $dbname);

// Check connection

if (!$conn) {

    die("Connection failed: " . 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 "New record created successfully. Last inserted ID is: " . $last_id;
} else {
    echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}

mysqli_close($conn);

?>






مثال (PDO)



<?php
$serve
ame = "localhost";
$use
ame = "use
ame";

$password = "password";
$dbname = "myDBPDO";

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();
    }


$conn = null;

?>