อ่านค่า ID ของ record ที่บันทึกล่าสุด
การอ่าน ID ของข้อมูลที่ insert ล่าสุดบน MySQL เราสามารถทำได้โดยการใช้ฟังก์ชั่น mysql_insert_id() ครับ ซึ่งฟังก์ชั่นนี้จะทำการคืนค่าของ ID ที่กำหนดเป็น AUTO_INCREMENT ไว้
ข้อควรจำสำหรับการใช้งานคำสั่งนี้คือ
1. ค่านี้ ถูกอ่านมาจากฟิลด์ที่กำหนดเป็น AUTO_INCREMENT ไว้
2. การใช้คำสั่งนี้ ให้กระทำหลังจากการใช้คำสั่ง INSERT เท่านั้น
3. จากข้อ 1 ทำให้ไม่สามารถรับประกันได้ว่า ID ที่ได้จะเป็น ID ที่เราบันทึกหรือไม่ เนื่องจากหากเราทำการ INSERT ข้อมูลพร้อมกัน 2 รายการ อาจคืนค่าผิดพลาดได้
หากเป็นการอ่าน ID ล่าสุดทั่วๆไป เราสามารถทำได้โดยใช้ query ดังนี้ครับ
ซึ่งคำสั่งนี้ สามารถใช้เมื่อไรก็ได้ เป็นการอ่าน ID สุดท้ายของตารางครับ
<?php
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
mysql_select_db('mydb');
mysql_query("INSERT INTO mytable (product) values ('kossu')");
printf("Last inserted record has id %d\n", mysql_insert_id());
?>
ข้อควรจำสำหรับการใช้งานคำสั่งนี้คือ
1. ค่านี้ ถูกอ่านมาจากฟิลด์ที่กำหนดเป็น AUTO_INCREMENT ไว้
2. การใช้คำสั่งนี้ ให้กระทำหลังจากการใช้คำสั่ง INSERT เท่านั้น
3. จากข้อ 1 ทำให้ไม่สามารถรับประกันได้ว่า ID ที่ได้จะเป็น ID ที่เราบันทึกหรือไม่ เนื่องจากหากเราทำการ INSERT ข้อมูลพร้อมกัน 2 รายการ อาจคืนค่าผิดพลาดได้
หากเป็นการอ่าน ID ล่าสุดทั่วๆไป เราสามารถทำได้โดยใช้ query ดังนี้ครับ
<?php
$sql = "SELECT MAX(ID) AS lastid FROM table";
$result = mysql_query($sql);
$stuff = mysql_fetch_assoc($result);
echo 'Last record is : '.$stuff[lastid];
?>
ซึ่งคำสั่งนี้ สามารถใช้เมื่อไรก็ได้ เป็นการอ่าน ID สุดท้ายของตารางครับ