如何在php中使用mysql中的单引号匹配字符串

时间:2012-09-01 10:16:36

标签: php mysql

我有一个MySQL表,其中有一个名为title的列,它是一个字符串。

当字符串有单引号时(例如“John的组”),sql失败。

我正在使用以下php代码查找表:

$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . $title . "'"));

其中$ title包含我的查找字符串。

有人可以告诉我这里要做什么吗?

编辑:我发现两个单引号可以在SQL中运行 - 但是 - 有没有办法在php中执行此操作?

4 个答案:

答案 0 :(得分:3)

在使用查询之前,您应该转义title

$title = mysql_real_escape_string($title)

答案 1 :(得分:1)

尝试将字符串替换为'',以便在整个查询中将其转义:

$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . str_replace($title, "'", "''") . "'"));

答案 2 :(得分:0)

您可以使用mysql_escape_string

答案 3 :(得分:0)

试试这个......

$pageID = mysql_fetch_array(mysql_query('SELECT pageID FROM `mytable` WHERE title="' . $title . '"'));