php发送查询到数据库,引号不起作用

时间:2013-02-17 11:09:41

标签: php input double-quotes quote

我有一个像以下

的mysql查询
mysql_query("select * from user where name='$name' LIMIT 1");

如果假设我从客户端输入的是'John',我的查询中会出现MySQL错误。 防止这种情况的最佳做法是什么?

2 个答案:

答案 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");