title_mysql_error

ถ้าใครเขียนโปรแกรมอยู่ดี ๆ แล้วมี Error ขึ้นนี่ ถ้าเขียนเล่น ๆ ฝึกฝน คงจะสนุกไม่น้อยเลยนะครับ แ่ต่ถ้าเป็นงานเร่ง งานด่วน ที่ต้องส่งให้ทัน หัวใจนี่แทบจะหยุดเต้นเลยก็ว่าได้

เห็นถามกันมาเยอะเหลือเกินนะครับ สำหรับ Error ตัวนี้ วันนี้เลยขอจัดให้สักหน่อย คงไม่เสียเวลาเคลียร์งานผมมากสักเท่าไหร่ (เอาเป็นว่าผ่อนคลายละกัน)มาแล้วก็ว่ากันต่อเลยจ้าาาา

ในกรณีที่เราไปดึงข้อมูลจาก DB นั้น ถ้าเรามีข้อมูลจำนวนมาก  ๆ เวลาเรา query นี่ก็อยากจะแบ่งออกมาให้น้อย ๆ เช่น อาจจะใช้วิธีการแบ่งหน้า เป็นต้น เพื่อให้โหลดได้เร็วขึ้นยังไงละครับ  มันก็ทำงานคล้าย ๆ กับ package ที่วิ่ง ๆ อยู่บนโลก Network  ไงครับ (เริ่มไปไกลแล้วไง)  กะว่าคงจะยาว เลยขอตัดบริบทละกันนะครับ   แบบนั้นแหละ

แต่ในกรณีที่เราพึ่งสร้าง DB เสร็จ แน่นอนข้อมูลยังไม่มีครับ เวลาเราใช้คำสั่งการนับจำนวน record ทั้งหมด จึงเป็นปัญหาอยู่บ้าง   เช่น

$row=mysql_num_rows($result);

มักจะเกิด Warning แบบนี้เสมอ
Warning: mysql_num_rows(): supplied argument is not a valid MySQL result resource in..

เมื่อมันเกิดแบบนี้แล้วเราจะทำยังไงล่ะ ในกรณีที่เราจำเป็นต้องใช้คำสั่งนี้  มันพอจะมีวิธีแก้ไขหรือไม่   ขอตอบว่ามีครับ ตามมา เราก็สามารถทำได้อย่างนี้เป็นต้น เช่น

  • ไม่แสดงผลการ Warning
  • ขอดูหน่อยสิว่า มัน Error ยังไง (ถามมันแบบหาเรื่องเลยนะ 55+)

ในกรณีที่เราจะไม่ให้มันเกิดข้อความ Error ขึ้นมา เราใช้  @ เข้าไปที่หน้าคำสั่งได้เลยครับ เช่น

$row=@mysql_num_rows($result);

แค่นี้แหละ มันก็จะไม่แสดงผลการ Warning ให้รบกวนเราอีกต่อไปเลย  ผมคงไม่อธิบายไปมากกว่านี้นะครับ เดี๋ยวจะงงเอา ฮา  เอาเป็นว่า ใส่แล้วมันหาย ก็โอเคแล้วเน้อ และในกรณีที่อยากรู้ว่ามัน Error ตรงไหน ขอบอกว่าคำสั่งนี้เหมาะกับช่วงทดสอบ script นะครับ อย่าไปใส่ตอนใช้งานนะ เดี๋ยวมันจะฟ้องให้ชาวบ้านเขาให้หัวเราะเราเอง   เดี๋ยวจะหาว่าคนทำไมอ่อนหัดเช่นนี้  ประมาณนี้ครับ   ผมแนะนำให้ใช้ตอนที่เกิดปัญหาดีกว่า เราก็มาดูว่า มันเป็นยังไง เป็นต้น  อ่ะมาดูวิธีกัน

$row=@mysql_num_rows($result)or die(mysql_error());

ทดลองดูนะครับ มันจะบอกไรเรารู้ปัญหาได้นะ เช่น กรณีนี้

You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line

เห็นไหมว่ามันบอกว่าอะไร มันให้เราไปเช็คคำสั่ง sql ดี ๆ  อันนี้ผมเคยเจอแล้วไปทำตามคำแนะนำปรากฎว่าได้ครับ  มันสามารถช่วยให้เราประหยัดเวลา debug ได้เยอะเลยครับ

ที่จริง  mysql_error มันสามารถใช้ได้ในหลายกรณีครับ  เอาเป็นว่าขอเจอเคสดี ๆ ตัวอย่างดี ๆ แล้วจะมาเล่าสู่กันฟังอีกทีครับ

ขอไปลุยงานต่อแหละ บายครับ