English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في هذا الدرس، ستتعلم كيفية استخراج ID السطر الفريد المدرج الأخير من جدول MySQL باستخدام PHP.
في " 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); ؟؟؟
<?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(); ؟؟؟
<?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); ؟؟؟