我正在尝试清理进入我数据库的字符串。但是使用下面的代码,我没有得到我的数据库的更新。
首页以输入形式发布:
$note="Here is some example text";
接收页面:
$note = $_POST['note'];
$note = mysql_real_escape_string($note);
$sql="UPDATE some_table SET notes='$note' WHERE id='$some_id'";
$result=mysql_query($sql);
当我取出mysql_real_escape_string行时,它可以工作,但不能在那里使用它。 我错过了什么?
谢谢!
答案 0 :(得分:1)
我强烈建议使用Prepared Statement,mysql_real_escape_string()不能完全保护您免受SQL注入。
您的更新示例:
<?php
// connection
$conn = new PDO("mysql:host=$dbhost;dbname=$dbname",$dbuser,$dbpass);
// query
$sql = "UPDATE some_table
SET notes=?
WHERE id=?";
$q = $conn->prepare($sql);
$q->execute(array($$_POST['note'], $some_id));
?>