Internet Explorer无法处理多个查询

时间:2011-12-13 18:32:33

标签: php mysql internet-explorer

这可能是也可能不是编程问题。

这是关于我问earlier的问题。您不需要知道此前的问题,但它可能是相关的。我不确定这是一个内存或设置,或者是或者或者db(极不可能)的问题。

$table_name实际上是view,如果它有任何区别的话。数据库是MySQL。我有以下代码。为了保持一致性,我在最后添加了die()

$query = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query1 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query2 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query3 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query4 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

echo "End";
die();

这个简单的php页面不能运行ie但在chrome和firefox中运行良好。我收到"Internet Explorer cannot display the webpage"错误。开发人员的工具控制台中没有错误。 view有大约50,000条记录。

但是这段代码运行正常。另一个问题不应该产生那么大的差异。

$query = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query1 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query2 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

$query3 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());
echo "End";
die();    

$query4 = mysql_query("SELECT * FROM $table_name") or die(mysql_error());

我想也许是处理的大量记录(250k很小)。所以我尝试了这段代码。该查询每个约有15条记录。

$query = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query1 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query2 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query3 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query4 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'")or die(mysql_error());
echo "End";
die();

这个没完成。我得到了同样的错误"Internet Explorer cannot display the webpage"。然而,这很好。

$query = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query1 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query2 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

$query3 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());
echo "End";
die();

$query4 = mysql_query("SELECT * FROM $table_name WHERE col1 ='var'") or die(mysql_error());

对于Internet Explorer如何处理5个简单查询,我感到非常困惑。有时它甚至不会转到$query3,也不能超过$query2

我已在本地测试过 - Win7,IE8。我有足够的内存,硬盘空间等。本地我运行PHP 5.3.5。

我还在运行IE8的两台不同计算机上的基于unix的服务器上测试了这一点。再次拥有足够的内存,硬盘空间等。在服务器上,PHP版本是5.25。

我在一张较小的桌子上测试了它,它运行正常。该表有200条我随机生成的记录。但是在较大的table(read view)上,它不起作用。

我对IE的这一点感到非常沮丧。如果IE有任何限制或以任何方式解决问题,任何见解/帮助解释为什么它不起作用将不胜感激。

4 个答案:

答案 0 :(得分:0)

这不是IE上的问题。 IE无法显示网页,因为服务器没有返回结果(正确)。禁用IE中的“友好消息”,您可以(可能)获得更好的消息,甚至可以提供有关问题的一些提示。 您还可以将所有内容都包含在try-catch中并打印结果,这也可能有所帮助。 http://php.net/manual/en/language.exceptions.php

答案 1 :(得分:0)

为了清理,PHP在服务器上运行。 IE和Firefox是浏览器,不执行任何PHP(正在运行查询)。

您运行的PHP脚本可能在IE上超时。简单地说,渲染需要很长时间,IE认为它已经坏了(大多数用户也会这样做)。

考虑使用AJAX调用。

答案 2 :(得分:0)

在执行所有5个查询时,您可能会达到最长执行时间,
并且您的脚本没有返回正确的HTTP状态
(可能是错误500,您需要根据您的apache日志进行验证)

然而,最致命的问题是因为你重复同一组SQL 5次 所有查询都返回相同的结果集,您可以简单地将所有5个查询合并为一个。

组合查询后,对从视图执行查询所需的时间进行基准测试,
在不知道what exactly you have written for the view的情况下,我不愿意说是安全的。

答案 3 :(得分:0)

实际问题是您的页面加载时间过长(由于查询量较大),如果等待时间超过1分钟,IE将会超时。

To fix you will need to edit the registry但这不应该是必要的,因为没有页面需要更长的时间才能加载1分钟!