【问题标题】:Only IE will correctly run my PHP/ MySQL query!只有 IE 才能正确运行我的 PHP/MySQL 查询!
【发布时间】:2011-06-14 10:41:55
【问题描述】:

我的一个 PHP 文件执行一个查询,将一条记录插入我的数据库。代码如下:

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

通常,这些值会动态生成。但是为了找出导致我的查询失败的原因,我将这些值硬编码到查询本身中。以下是发生的事情:

1) 使用 IE,查询运行良好,并插入一条包含所有值的记录。

2) 使用任何其他浏览器,查询运行得很好,只是没有插入'yahh' 值!所有其他值都按原样插入。

3) 如果我将查询复制并粘贴到 phpMyAdmin 中,查询运行正常,并插入所有值(包括 'yahh')。

无论我如何运行查询,都不会报告错误。

这是我见过的最奇怪的错误。我不知道是什么原因造成的。看来浏览器应该和它无关!

感谢您的帮助!

【问题讨论】:

  • @Michael 你能展示一下表头的结构吗?
  • IE 不运行代码。它在服务器端执行。
  • 您不会向您的 mysql 询问错误,因此不会报告错误。始终以这种方式运行所有查询$result = mysql_query($query) or trigger_error(mysql_error()." in ".$query);
  • 我刚刚打开了错误报告。使用除 IE 以外的任何浏览器时,我只会收到错误:PHP 注意:未定义索引:在第 3 行的 /home/mikey/public_html/ask2.php 中搜索
  • @Michael,在您发布重现问题的完整代码 sn-p 之前,您不会得到有用的答案。如果你连Undefined index: searched 的样子都不告诉我们,怎么能得到关于它的建议?

标签: php mysql internet-explorer firefox google-chrome


【解决方案1】:

这些代码行单独应该可以正常工作。

可能发生的情况是,您在其他地方有一些代码在查询之前运行,这些代码依赖于浏览器功能(检查用户代理字符串、cookie 处理、查询字符串、标题等),导致此代码行为不端。

如果您发布更多代码,例如您正在处理的文件的整个源代码,则问题会更容易被发现。

【讨论】:

    【解决方案2】:

    我的水晶球表明你的表单中有这样的元素:

    <input type="image" name="searched" value="foo">
    

    ...稍后你会像这样处理它:

    $sql .= $_POST['searched'];
    

    Internet Explorer 的 image 输入字段存在已知问题:

    http://www.kilbot.com.au/2008/05/03/using-the-image-input-type-to-post-a-form-in-ie/

    恐怕您需要更改表单布局。有关一些想法,请参阅上面的链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-03
      • 1970-01-01
      • 2011-10-31
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多