|
|
|
php MySQL Update ไม่เช็คว่า id ที่จะอัพเดทนั้นมีอยู่จริงหรือป่าว |
|
|
|
|
|
|
|
Code (PHP)
$row = mysql_affected_rows();
ถ้า $row = 0 แสดงว่าไม่มีแถวที่ Update
|
|
|
|
|
Date :
2013-02-11 22:27:39 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
การตรวจสอบว่า UPDATE ได้หรือไม่ได้นั้น ไม่ได้ใช้ค่าที่คืนมาจาก mysql_query() ครับ
แต่เราจะใช้ mysql_affected_rows() ครับ
เป็นฟังก์ชั่นที่คืน "จำนวนของแถวที่เปลี่ยนแปลง" (update, insert, delete)
Code (PHP)
$sql_up_ads = "UPDATE tb_post SET last_update=NOW() WHERE id_post=".$id." AND id_mem=".$_SESSION["log_id_mem"]."";
mysql_query($sql_up_ads);
if (mysql_affected_rows()) {
echo "<div id=\"show_error\"><img src=\"images/ajax-loader.gif\" />กำลังทำงาน กรุณารอ..</div>";
echo "<meta http-equiv=\"Refresh\" content=\"1; URL=index.php?act=upd\" />";
}else{
echo "<div id=\"show_error\"><img src=\"images/ico_warning.png\" />ไม่สามารถอัพเดทประกาศนี้ได้ กรุณาลองอีกครั้ง <a href=\"javascript:history.back()\">คลิกที่นี่ เพื่อกับไปแก้ไข</a></div>";
}
แต่การใช้ฟังก์ชั่นนี้เพื่อตรวจสอบว่า มี id นั้นๆ อยู่หรือไม่ตามความตั้งใจของคุณอาจจะไม่ได้ได้ผลเสมอไป
ในกรณีที่ "การอัพเดทนั้นเป็นการอัพเดทที่ไม่ได้เปลี่ยนแปลงค่าใดๆ ในแถวเลย"
เช่น เปิดหน้าแก้ไขข้อมูล แล้วกดบันทึกโดยไม่เปลี่ยนแปลงข้อมูลใดๆ เลย
กรณีนี้ mysql_affected_rows() อาจจะคืนค่า 0 กลับมา (เพราะไม่มีแถวใดเปลี่ยนแปลง)
|
|
|
|
|
Date :
2013-02-11 22:30:51 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณคุณพี่วิน และ น้องเปรม ครับ
ตอนแรกผมก็ใช้ mysql_affected_rows แหละครับ แต่ไปคิดว่าใช้ mysql_query เลยน่าจะได้
ปล. แหะๆ คือก่อนหน้านี้ ผมเขียนโปรแกรม ไม่เคยเขียนโค๊ดเช็คเลยว่าได้อัพเดทไม่ได้ เช็คแต่ตอน insert อย่างเดียว
ขอบคุณทุกท่านครับ
|
|
|
|
|
Date :
2013-02-11 22:35:12 |
By :
bouy2208 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คุณ mr.win มาตอบแล้ว
ขอเสริมอีกนิด หากต้องการตรวจจริงๆ ว่ามี id นั้นๆ อยู่หรือไม่ก่อน update
ก็แค่ SELECT มันออกมาครับ
Code (PHP)
$countResult = mysql_query("SELECT COUNT(*) FROM tb_post WHERE id_post=$id LIMIT 1");
$countRow = mysql_fetch_row($countResult);
if ($countRow[0]) {
// ทำการอัพเดท
} else {
// แสดง Error
}
|
|
|
|
|
Date :
2013-02-11 22:37:21 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เยี่ยมครับ
|
|
|
|
|
Date :
2013-02-11 22:42:12 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|