ตรวจสอบการบันข้อมูลลงในฐานข้อมูลโดยการเช็คว่าถ้าหากเราเว้นว่าง ฟิลด์นี้ไว้มันก็จะไม่เซฟข้อมูลจาก ฟิลด์นั้นๆ ที่เว้นว่างไว้
การ INSERT INTO กับการ UPDATE มีจุดที่แตกต่างกันที่สำคัญอยู่คือ
การ INSERT INTO นั้นไม่ต้อง มี WHERE ส่วนการ UPDATE นั้นจำเป็นต้องมี WHERE
เพื่ออะไร ลองนึกภาพตามนะครับ. . .
จะจดบันทึกชื่อนายสมชาย ใจดี อายุ 50 ปี ลงกระดาษ เราแค่มองหากระดาษว่างๆ แล้ว จดลงถูกไหมครับ
ทีนี้วันนี้นายสมชายอายุ 51 ปี เราจะแก้ใขข้อมูล เราจะมาบอกว่าแก้อายุ 50 เป็น 51 นะ อย่างนี้ไม่ได้
เนื่องจากเราจะรู้ได้ไงว่าเราจะแก้อายุของใคร ? ถ้าในกระดาษมีเป็นร้อยๆรายชื่อที่มีอายุ 50 ปี ตายหละหว่า ทีนี้
เราก็ต้องออกคำสั่งว่าแก้ นายสมชาย ใจดี อายุเปลี่ยนเป็น 51 ปีนะ . . . นี่คือที่มาของการต้องมี WHERE ครับ
ทีนี้มาดูโค้ดของ จขกท. ลองเพิ่ม WHERE เข้าไปดูสิครับ WHERE ควรเอา PK มา WHERE นะครับเพื่อป้องกันค่าซ้ำ
*ผมไม่รู้ชื่อฟิลในตารางของ จขกท ว่าอะไรเป็น PK เอามันเป็นมันชื่อ ID_PK ละกัน
// Update
$strSQL = "UPDATE table SET ";
$strSQL .="Title = '".$_POST["txtnameCode"]."' ";
$strSQL .=",Description = '".$_POST["Description"]."' ";
$strSQL .=",Keyword = '".$_POST["Keyword"]."' ";
$strSQL .="WHERE ID_PK= '".$objResult["ID_PK"]."' ";
$objQuery = mysql_query($strSQL);
ปล. ถ้าในตารางมีแค่ 3 ฟิลเท่านั้นจริงๆ และไม่มี PK แท้ๆ(ไม่มีโอกาศซ้ำ)ถือว่าผิดพลาดอย่างแรงในการออกแบบนะครับ
เนื่องจากหากเอา Name มาเป็น Pk แล้วนั้น หากวันดีคืนดีมีคนชื่อ James 2 คนมันจะยุ่งวุ่นวายไปกันใหญ่แน่นอนฟันธง
** แต่ถ้าหากดักชื่อ James ตอน Insert into ไว้แล้วนั้นเช็คก่อนว่ามียังถ้ามีไม่ให้ทำ ก็คงจะพอได้ที่จะใช้แอททริบิว Name เป็น PK
ประวัติการแก้ไข 2014-06-04 00:10:09 2014-06-04 00:34:35
Date :
2014-06-04 00:09:12
By :
meannerss
ขอบคุณมากเลยครับ :D
Date :
2014-06-04 18:57:37
By :
Amjames
Load balance : Server 03