您应该使用来转义每个字符串(在两个代码片段中)
mysql_real_escape_string()。
http://us3.php.net/mysql-real-escape-string
您的两个查询行为不同的原因很可能是因为您已将其
magic_quotes_gpc打开(您应该知道这是一个坏主意)。这意味着从$ _GET,$ _POST和$ _cookieS收集的字符串将为您转义(即
"O'Brien" -> "O'Brien")。
一旦存储了数据并随后再次对其进行检索,将从数据库中取回的字符串将 不会
自动为您转义。你会回来的
"O'Brien"。因此,您将需要通过它
mysql_real_escape_string()。


![插入MySQL时转义PHP中的单引号[重复] 插入MySQL时转义PHP中的单引号[重复]](http://www.mshxw.com/aiimages/31/421000.png)
