0

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

然而,当字符串有单引号时(例如“John's group”),sql 会失败。

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

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

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

谁能给我建议在这里做什么?

编辑:我发现两个单引号可以在 SQL 中工作 - 但是 - 有没有办法在 php 中做到这一点?

4

4 回答 4

3

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

$title = mysql_real_escape_string($title)
于 2012-09-01T10:21:04.197 回答
1

尝试用 '' 替换字符串以在整体查询中对其进行转义:

$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . str_replace($title, "'", "''") . "'"));
于 2012-09-01T10:19:44.353 回答
0

您可以使用mysql_escape_string

于 2012-09-01T10:21:57.130 回答
0

试试这个...

$pageID = mysql_fetch_array(mysql_query('SELECT pageID FROM `mytable` WHERE title="' . $title . '"'));
于 2012-09-01T10:22:29.157 回答