我有一个像以下
的mysql查询mysql_query("select * from user where name='$name' LIMIT 1");
如果假设我从客户端输入的是'John',我的查询中会出现MySQL错误。 防止这种情况的最佳做法是什么?
答案 0 :(得分:1)
尝试:
$query = sprintf("select * from user where name='%s', mysql_real_escape_string($name));
$result = mysql_query($query);
确保$ name包含您的想法(回复它以确认)。
答案 1 :(得分:1)
首先,不推荐使用mysql_ *函数,而应使用PDO或mysqli_。这两个库实现了自动转义输入的准备语句。
如果你想使用mysql_ *,你必须调用mysql_real_escape_string
来传递var
mysql_query("select * from user where name='" . mysql_real_escape_string($name) . "' LIMIT 1");