วิธีป้องกัน 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
);




ขึ้นไปด้านบน