我有一个MySQL表,其中有一个名为title的列,它是一个字符串。
当字符串有单引号时(例如“John的组”),sql失败。
我正在使用以下php代码查找表:
$pageID = mysql_fetch_array(mysql_query("SELECT pageID FROM `mytable` WHERE title='" . $title . "'"));
其中$ title包含我的查找字符串。
有人可以告诉我这里要做什么吗?
编辑:我发现两个单引号可以在SQL中运行 - 但是 - 有没有办法在php中执行此操作?答案 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 . '"'));