การตรวจสอบหรือเช็คค่าจากคำสั่ง sql query ก่อนทำการ Insert หรือ Update นั้น มีความสำคัญอย่างมาก ผมเองก็ต้องตรวจสอบก่อนเสมอ ว่าตัวแปรที่ส่งค่ามา ถุกต้องหรือเปล่า คำสั่ง sql query ที่เราเขียนถูกต้องตามรูปแบบ syntax หรือไม่ ทำไปก็เทสไป ไม่ต้องรีบร้อนนะครับ
ดีกว่ารีบทำ ทำไปเยอะ ๆแล้วมันจะกลับมาหาจุดเกิดเหตุได้ลำบากมาก ๆ อย่างที่เขาเรียกว่า วางยาตัวเอง สำหรับผม ผมใช้วิธีการง่าย ๆ ฟังก์ชั่นเล็ก ๆ ของ PHP นี่ล่ะครับ ในการ Debug code php ส่วนจะเป็นฟังก์ชั่นไหนนั้น มาดูไปพร้อม ๆ กันได้เลยครับ
หากผมเกิดสงสัยตัวแปรอะไรก็ตาม หรือส่งค่าไปแล้ว ระบบไม่สามารถทำงานได้ตามที่ควรจะเป็น ผมจะ ECHO() ตัวแปรนั้นดูก่อนเลย เช่น
<?php
echo $_POST['std_id'];
echo $_GET['Action'];
?>
ถ้าเป็นคำสั่ง sql query ก็สามารถเอาตัวแปรมารับค่ำสั่งก่อน จากนั้นก็ค่อย ECHO() ตัวแปรนั้น ๆ ดู ว่าผลที่ได้ ถูกต้อง ครบถ้วนเหมือนที่ส่งค่ามาจากฟอร์มหรือไม่ เช่น
<?php
if($_GET['Action']=="INSERT'){
$sql="INSERT INTO student set std_id='".$std_id."',card_id='".$card_id."',gender='".$gender."',full_name='".$full_name."',class='".$class."',Email='".$Email."',birthdate='".$birthdate."',timein='".$timein."',std_pic='".$std_pic."',std_file='".$std_file."',cn_id='".$cn_id."',subject1='".$subject1."',subject2='".$subject2."',subject3='".$subject3."',subject4='".$subject4."',remark='".$remark."'";
echo $sql;
mysqli_query($conn,$sql);
}
?>
ก็จะได้โค้ดคำสั่ง sql query ประมาณนี้ออกมา
INSERT INTO student set std_id='1111',card_id='1111111111111',gender='1',full_name='สมชาย ใจไม่ด้านพอ',class='4',Email='nay-banana@hotmail.com',birthdate='2019-07-24',timein='10:50:36',std_pic='',std_file='',cn_id='10',subject1='checked',subject2='',subject3='checked',subject4='',remark='0141'
เราก็คัดลอก หรือ copy คำสั่งนี้ ไปรันเทสใน PHPMyAdmin ตรงช่อง sql ได้เลย
หากโค้ดหรือคำสั่งถูกต้องก็จะสามารถเพิ่มข้อมูลเข้าไปได้ แต่ถ้าโค้ดหรือคำสั่ง sql query ไม่ถูกต้อง ระบบก็จะแจ้งออกมาว่าไม่ถูกต้อง เราก็นั่งไล่ตรวจสอบรูปแบบ syntax ให้ถูกต้อง พวกฟันเดี่ยว เครื่องหมายคอมม่า แล้วก็ เซมิโคล่อนปิดท้ายคำสั่งด้วยนะครับ