วิธีป้องกัน SQL Injection และตัวอย่าง code php mysql
หน้าแรก PHP MySQL เกร็ดความรู้ วิธีป้องกัน SQL Injection และตัวอย่าง code php mysql
คำสั่งที่ใช้ป้องกัน
- คำสั่ง mysql_real_escape_string() หรือ mysql_escape_string()
- คำสั่ง sprintf()
สำหรับการ SELECT
| Code |
| $sql = sprintf( "SELECT * FROM `user` WHERE `username` = '%' AND `password` = '%s'", mysql_real_escape_string($_POST['username']), // ค่าของ %s ตัวที่ 1 mysql_real_escape_string($_POST['password']) // ค่าของ %s ตัวที่ 2 ); |
สำหรับการ INSERT
| Code |
| $sql = sprintf( " INSERT INTO `user` (`user_id`, `username`, `password`, `fullname`) VALUES ('', '%s', '%s', '%s') ", mysql_real_escape_string($_POST['username']), // ค่าของ %s ตัวที่ 1 mysql_real_escape_string($_POST['password']), // ค่าของ %s ตัวที่ 2 mysql_real_escape_string($_POST['fullname']), // ค่าของ %s ตัวที่ 3 ); |
สำหรับการ UPDATE
| Code |
| $sql = sprintf( " UPDATE `user` SET `username` = '%s', `password` = '%s', `fullname` = '%s' WHERE `user_id` = '%s' LIMIT 1 ", mysql_real_escape_string($_POST['username']), // ค่าของ %s ตัวที่ 1 mysql_real_escape_string($_POST['password']), // ค่าของ %s ตัวที่ 2 mysql_real_escape_string($_POST['fullname']), // ค่าของ %s ตัวที่ 3 mysql_real_escape_string($_POST['user_id']) // ค่าของ %s ตัวที่ 4 ); |
สำหรับการ DELETE
| Code |
| $sql = sprintf( " DELETE from `user` WHERE `user_id` = '%s' ", mysql_real_escape_string($_POST['user_id']) // ค่าของ %s ตัวที่ 1 ); |
ขึ้นไปด้านบน
