English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دروس PHP الأساسية

دروس PHP متقدمة

PHP & MySQL

دليل مرجعي PHP

PHP MySQL آخر ID تم إدخاله

في هذا الدرس، ستتعلم كيفية استخراج ID السطر الفريد المدرج الأخير من جدول MySQL باستخدام PHP.

كيفية الحصول على ID السطر الأخير المدرج

في " PHP MySQL إدراجفي الفصل السابق، لقد تعلمت أن AUTO_INCREMENT يولد دائمًا MySQL ID فريدًا تلقائيًا لكل سطر جديد يتم إضافته إلى الجدول. ولكن، في بعض الحالات، قد تحتاج إلى ID تم إنشاؤه تلقائيًا للاشتراك في الجدول الثاني. في هذه الحالات، يمكنك استخدام دالة PHP mysqli_insert_id() للحصول على ID تم إنشاؤه حديثًا، كما هو موضح في المثال التالي.

في هذا المثال، سنستخدم فيPHP MySQL إنشاء الجداولفي الفصل نفسه الذي تم إنشاؤهشخصجداول، التي تحتوي على أربعة أعمدةid،first_name،last_nameوemail، حيثidهو عمود المفتاح الأساسي وتم تسميته بـ AUTO_INCREMENT.

مثال: طريقة العملية

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم بهضبطات افتراضية (مستخدم بدون كلمة مرور "root")*/
$link = mysqli_connect("localhost", "root", "", "demo");
 
//تحقق من الاتصال
if($link === false){
    die("خطأ: لا يمكن الاتصال. " . mysqli_connect_error());
}
 
//حاول تنفيذ استعلام الإدراج
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if(mysqli_query($link, $sql)){
    //الحصول على آخر ID تم إدراجه
    $last_id = mysqli_insert_id($link);
    echo "تم إدخال السجل بنجاح. آخر ID تم إدخاله هو: " . $last_id;
} else{
    echo "خطأ: لا يمكن تنفيذ $sql. " . mysqli_error($link);}}
}
 
//إغلاق الاتصال
mysqli_close($link);
؟؟؟

مثال: الطريقة الموجهة للQObject

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم بهضبطات افتراضية (مستخدم بدون كلمة مرور "root")*/
$mysqli = new mysqli("localhost", "root", "", "demo");
 
//تحقق من الاتصال
if($mysqli === false){
    die("خطأ: لا يمكن الاتصال. " . $mysqli->connect_error);
}
 
//حاول تنفيذ استعلام الإدراج
$sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";
if($mysqli->query($sql) === true){
    //الحصول على آخر ID تم إدراجه
    $last_id = $mysqli->insert_id;
    echo "تم إدخال السجل بنجاح. آخر ID تم إدخاله هو: " . $last_id;
} else{
    echo "خطأ: لا يمكن تنفيذ $sql. " . $mysqli->error;
}
 
//إغلاق الاتصال
$mysqli->close();
؟؟؟

مثال: طريقة PDO

<?php
/*حاول الاتصال بخادم MySQL. افترض أنك تقوم بتشغيل MySQL.
خادم بهضبطات افتراضية (مستخدم بدون كلمة مرور "root")*/
try{
    $pdo = new PDO("mysql:host=localhost;dbname=demo", "root", "");
    //ضبط نمط الأخطاء PDO على استثنائية
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
    die("خطأ: لا يمكن الاتصال. " . $e->getMessage());
}
 
//حاول تنفيذ استعلام الإدراج
try{
    $sql = "INSERT INTO persons (first_name, last_name, email) VALUES ('Ron', 'Weasley', '[email protected]')";    
    $pdo->exec($sql);
    $last_id = $pdo->lastInsertId();
    echo "تم إدخال السجل بنجاح. آخر ID تم إدخاله هو: " . $last_id;
} catch(PDOException $e){
    die("خطأ: لا يمكن تنفيذ $sql. " . $e->getMessage());
}
 
//إغلاق الاتصال
unset($pdo);
؟؟؟