最奇怪的PHP / MySQL错误

时间:2011-01-15 00:19:59

标签: php mysql

我有一个搜索页面,它会搜索您搜索的内容(通过POST),然后将其插入表格中。我把它通过电子邮件发送给我,这样我就可以看到发生了什么:

获取变量的PHP:

$searched = mysql_real_escape_string($_POST['searched']);

使用它的查询(通过电子邮件发送给我):

INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES (435, 0, 0, 0, 0, 0, 1, 1, 0, "

以下是组装查询的代码:

$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ($userID, 0, 0, 0, 0, 0, 1, 1, 0, \"$searched\")";

每当页面从IE运行时,这都会在DB中插入记录。任何其他浏览器都会遗漏“问题8”部分(它仍会插入记录),即使查询完全相同!我可以在phpMyAdmin中剪切和粘贴查询,它运行得很好。

为什么这只适用于IE?其他浏览器是否插入了一些我在那里看不到的特殊字符?我迷路了!

3 个答案:

答案 0 :(得分:1)

请确保PHP设置中的“Magic Quotes”已关闭。 here解释了如何禁用它。

(我从here复制/粘贴的答案完全相同)。

答案 1 :(得分:0)

搜索页面上使用的HTML或javascript中可能存在错误或浏览器特定的内容。

答案 2 :(得分:0)

如果有效($db_con引用您的MySQL连接资源),您能告诉我吗?

$searched = mysql_real_escape_string($_POST['searched'], $db_con);

$query = "INSERT INTO conversations (viID, moID, viTyping, moTyping, priority, status, open, mOpen, lastMsgID, searched) VALUES ('".$userID."', 0, 0, 0, 0, 0, 1, 1, 0, '".$searched."')";