我有一个搜索页面,它获取您搜索的内容(通过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中。任何其他浏览者都会忽略“question8”部分(它仍然会插入一个记录),即使查询完全相同!我可以在phpMyAdmin中剪切和粘贴查询,它运行得很好。
为什么这只适用于IE?其他浏览器是否插入了一些我看不到的特殊字符?我迷路了!
最佳答案
请确保在PHP设置中禁用“Magic Quotes”。如何禁用它将解释here。
(与我的答案完全相同,从here复制/粘贴)。
关于php - 最奇怪的PHP/MySQL错误,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4697269/