PHP无法正常转义我的字符串

时间:2009-12-10 19:46:48

标签: php mysql string escaping

我正在使用mysql_real_escape_string来逃避我的内容,但我在SQL INSERTION QUERY中收到错误,因为单引号没有转义。我该如何解决这个问题?

$content = mysql_real_escape_string("'content'",$conn);

我收到的错误消息是:

You have an error in your sql syntax near 'content

我的SQL查询结束以下内容:

$sql = "INSERT into `table` (`column`) VALUES ("'content'")

INSTEAD OF

$sql = "INSERT into `table` (`column`) VALUES ("\'content\'")

我也尝试使用单引号作为分隔符,最终导致双引号未被转义失败。

1 个答案:

答案 0 :(得分:2)

就像人们在你之前说的那样你删除了(你为什么删除它,顺便说一下?),你需要给我们更多的信息,比如一个完整的例子,它显示了查询构造的每个步骤;并且,您还应该自己使用SQL查询,并获得错误消息...

但是,如果您允许我引用您之前的问题,您说您的SQL查询如下:

insert into `exp_weblog_data` (`entry_id`,`site_id`,`weblog_id`,`field_id_117`,`field_ft_117`,`field_id_27`,`field_ft_27`,`field_id_26`,`field_ft_26`,`field_id_28`,`field_ft_28`,`field_id_129`,`field_ft_129`,`field_id_33`,`field_ft_33`) 
values ("","1","112","Patch 1.10","none","","none","- Fixed a bug with certain Creative Lab DVD drives and copy protection.("Unable to connect to Battle.net").","none","","none","ftp://totukati.gamezone.com/lodpatch_110.exe","none","[16020] Diablo II: Lord of Destruction","none")

如果它仍然是同一个查询,则SQL中的字符串不能用双引号(")分隔,而应用简单的引号(')分隔。

这意味着您的查询看起来应该更像这样:

insert into `exp_weblog_data` (`entry_id`,`site_id`,`weblog_id`,`field_id_117`,`field_ft_117`,`field_id_27`,`field_ft_27`,`field_id_26`,`field_ft_26`,`field_id_28`,`field_ft_28`,`field_id_129`,`field_ft_129`,`field_id_33`,`field_ft_33`) 
values ('','1','112','Patch 1.10','none','','none','- Fixed a bug with certain Creative Lab DVD drives and copy protection.("Unable to connect to Battle.net").','none','','none','ftp://totukati.gamezone.com/lodpatch_110.exe','none','[16020] Diablo II: Lord of Destruction','none')

希望这会有所帮助......


(如果与其他帖子的问题不同,请提前抱歉)