|
สำหรับนักพัฒนาระบบด้วย php หรือภาษาใด ๆ
รับรองว่าต้องเจอกับปัญหานี้อย่างเลียกเลี่ยงไม่ได้
เพราะบางทีข้อมูลที่เราจะเพิ่มเข้าไปยังฐานข้อมูลนั้น มันจะมีเครื่องหมาย "ต้องห้าม" อยู่บ่อย ๆ
ตัวอย่าง
$name="I'm you.";
$sql="Insert into DB Set name='".$name."' ";
mysql_query($sql);
ตามตัวอย่างข้างต้น จะเห็นว่าในชื่อ จะมีเครื่องหมายฟังเดี่ยวอยู่ด้วย ซึ่งเวลาจะเพิ่มค่าเข้าไปในฐานข้อมูล
จะทำให้ไม่สามารถเพิ่มเข้าไปได้ เนื่องจากเครื่องหมายฟันเดี่ยวที่ว่านี้มันจะทำให้ระบบเข้าใจผิดและทำงานผิิดพลาด
ประมาณว่า name='I'(อันนี้เป็นค่าที่ระบบมองเห็น ตามด้วย)m you.'
บางคนที่ยังไม่รู้ว่ามีฟังก์ชั่นสำเสร็จรูปให้ใช้ ก็อาจจะใช้คำสั่ง replace เพื่อเอาเครื่องหมายต้องห้ามนี้ออกเลยก็ได้
แต่เวลาแสดงผลมันก็จะไม่มีเครื่องหมายที่ว่า....นะสิครับ
เครื่องหมายต้องห้าม เช่น เครื่องหมายฟันเดี่ยว (single quote) และเครื่องหมายคอมม่า (,) เป็นต้น
อันนี้เจอกันได้บ่อย ๆ ครับ แต่ผู้พัฒนา php เขาก็คงจะรู้อยู่เหมือนกัน เขาจึงได้สร้างฟังก์ชั่นสำหรับแก้ไขปัญหาดังกล่าว
ฟังก์ชั่นที่จะช่วยได้ก็คือ function mysql_real_escape_string() ฟังก์ชั่นนี้ ..........นี่เอง
มันเป็น function ที่ทำหน้าที่ ใส่เครื่องหมาย \ เข้าไปหน้า special characters ครับ
วิธีใช้
$name=mysql_real_escape_string("I'm you.");
$sql="Insert into DB Set name='".$name."' ";
mysql_query($sql);
หรือ
$name="I'm you.";
$sql="Insert into DB Set name='".mysql_real_escape_string($name)."' ";
mysql_query($sql);
ลองเอาไปทดลองใช้กันดูนะครับ หากมีปัญหาอะไร ก็สอบถามกันเข้ามาได้ครับผ๋ม.............
|