MySQL查询仅在IE6下失败

时间:2012-05-24 21:27:33

标签: php mysql internet-explorer-6

我有一个商店网站,用户可以从显示的产品列表中添加/编辑购物车。非常简单的东西。在我的“添加到购物车”按钮(这是客户端请求)上会弹出一个确认框,询问用户是否想要向购物车添加更多内容。如果不这样做,则会转到购物车页面查看,如果他们想要添加更多内容,则只刷新同一页面。

我遇到的问题是他们点击确认框中的内容后,当该页面刷新时,以某种方式查询产品以再次启动它们的SELECT查询(它刚刚执行的确切查询)中断了...在IE6中。

查询本身看起来像这样:

  $query_Recordset1 = sprintf("SELECT ProductID, Lang, MasterPack, ProductCategory, ProductSubCategory, Restricted1, ProductCode, ProductDesc, UnitsInStock, Image, Chargeable, UnitPrice, PDFName FROM tblInventory WHERE Client='Tenneco' AND InventoryGroup IN($invGroupStr) ORDER BY ProductCategory, ProductSubCategory, ProductDesc ASC LIMIT %s,50", GetSQLValueString($pg, "int")); 

它在括号的$invGroupStr) AND ProductCategory='%s'附近突破。我确信$ invGroup设置为某种东西。

sprintf之后的查询是这样的:

SELECT ProductID, Lang, MasterPack, ProductCategory, ProductSubCategory, 
       Restricted1, ProductCode, ProductDesc, UnitsInStock, Image, 
       Chargeable, UnitPrice, PDFName 
FROM tblInventory 
WHERE 
    Client='Tenneco' AND InventoryGroup IN('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', '') 
ORDER BY ProductCategory, ProductSubCategory, ProductDesc ASC 
LIMIT 0,50

我应该研究一些明显的东西吗?这个网站最初是用PHP4编写的,一般来说编码很差(我的任务就是从已经存在的内容中取代它)。

2 个答案:

答案 0 :(得分:5)

查询不在浏览器中运行。由于查询是在您的服务器而不是客户端的浏览器上运行,因此IE查找失败的原因是不可能

尝试使用mysql_error()打印出与已损坏的查询相关的错误:

$result = mysql_query( $brokenQuery ) or die( mysql_error() );

然后从那里开始工作。

答案 1 :(得分:0)

原来这是一个愚蠢的错误。当“添加到购物车”执行ajax请求时,它会在NOT www下执行。域,IE6将其视为新用户并删除当前用户的会话。然后使$ invGroup无效,因此查询失败。不知道为什么有人会这样设置它。

有一天,我会用适当的PHP5重做整个网站......有一天。

感谢@Jonathan Sampson的帮助。