如何在MYSQL查询中转义引号?

时间:2011-07-22 17:16:03

标签: php mysql html

示例:以下查询在字段中给出了引号错误 - > GET ['email']

    mysql_query(" select * from user_info where user_mail = '$_GET['email']' ")

5 个答案:

答案 0 :(得分:4)

您可能希望首先转义字符串:

$_GET['email'] = mysql_real_escape_string($_GET['email']);

然后:

mysql_query(" select * from user_info where user_mail = '" . $_GET['email'] . "' ");

圆点把弦放在一起。

答案 1 :(得分:1)

使用这样的赞誉。

mysql_query(" select * from user_info where user_mail = '{$_GET['email']}' ")

另外,请务必转义用户输入。您当前的设置看起来很容易受到SQL注入攻击。使用http://php.net/manual/en/function.mysql-real-escape-string.php清理用户输入(如$ _GET值)

答案 2 :(得分:0)

如果您已经在双引号字符串中,则不需要关联数组字段名称的引号:

$str = "Hello $_GET[email].";

答案 3 :(得分:0)

以这种方式使用:

$SQL = "SELECT * FROM user_info WHERE user_mail = '".$_GET['email']."'";
mysql_query($SQL);

但我强烈建议您使用$_GET['email']采取一些安全措施,如下所示:

$email = mysql_real_escape_string($_GET['email']);
$SQL = "SELECT * FROM user_info WHERE user_mail = '".$email."'";
mysql_query($SQL);

答案 4 :(得分:0)

这不是你问题的答案,但我强烈建议你使用PDOmysqli准备好的陈述。因此,您的原始问题 - 转义参数字符串 - 将自动处理。

如果您不想遵循此建议,请执行以下操作:

$email = mysql_real_escape_string($_GET['email']);
mysql_query("select * from user_info where user_mail = '$email';");