2

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

我遇到的问题是在他们单击确认框中的某些内容并且该页面刷新后,以某种方式查询产品以再次显示它们的 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 编写的,而且总体上编码很差(我的任务是从已有的东西中接管它)。

4

2 回答 2

5

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

尝试使用以下命令打印出与损坏的查询相关的错误mysql_error()

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

然后从那里向后工作。

于 2012-05-24T21:35:31.987 回答
0

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

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

感谢@Jonathan Sampson 的帮助。

于 2012-05-24T22:36:59.553 回答