我正在为Opencart制作一个Atom接收器,它似乎在一个1.5.6x版本的存储库中运行良好。但是,当我将其迁移到实时商店(和开发人员)时,_product
表date_modified
列始终会返回getProduct()
结果数组,每个结果数组都包含2015-01-15 10:45:18
或2014-12-01 12:52:23
$result['date_modified']
在产品行......以一种看似随机的方式。
我尝试过的一些事情:
getProduct()
功能,确保其提取正确的date_modified
。date_modified
实际上是DATETIME
列,而不是返回字符串。date_modified
date(DATE_ATOM, $time)
getProducts()
功能的其他mod。股票和实时getProducts()
之间的代码没有区别。date_modified
表的情况下成功地将LEFT JOIN
拉入模式。manufacturer
表中找到这些日期,但似乎没有任何损坏的数据,该列设置为DATETIME
且JOIN
正常运行答案 0 :(得分:0)
编辑:发布后我注意到实时商店在制造商表(和其他人)上有一个date_modified
。此外,OC存储文字撇号,这些撇号会破坏一些查询以及这些实体的JSON。
制造商表上的额外date_modified
显然来自一个名为" OpenShop"的修改过的OC安装。我们没有意识到在安装过程中有一个包含的.sql
脚本。因此,使用JOIN
的查询会提取制造商date_modified
而不是产品。
解决方案是在p.date_modified,
和SELECT
(或任何其他getProduct()
查询中的getProducts()
语句之后添加JOIN
,以便明确提取正确修改)。另一个解决方案是删除那些第三方date_modified
列,但它们有点方便。
此外,请注意制造商,选项等名称中的撇号。我们现在最终删除它们,并将在稍后编写更好的存储过程。