我正在为Opencart制造Atom进纸器,该进纸器似乎在1.5.6x的库存开发商店中效果很好。但是,当我将其迁移到实时存储(和开发人员)时,_productdate_modified列始终为产品行中的每个getProduct()返回带有2015-01-15 10:45:182014-12-01 12:52:23$result['date_modified']结果数组。以看似随机的方式。

我尝试过的一些事情:


而是检查getProduct()函数,以确保它拉正确的date_modified
检查以确保date_modified实际上是DATETIME列,而不是返回字符串。
我已经清理了恶意行/游牧行的数据库,并检查/修复了所有崩溃问题。
我尝试返回date_modified而不使用任何格式,例如date(DATE_ATOM, $time)
我已经关闭了影响getProducts()功能的所有其他mod。 stock和live getProducts()之间的代码没有区别。
我已经在OC之外重建了数据库连接,并且成功地将date_modified拉入了LEFT JOIN,而没有任何manufacturer表插入架构中。
我已经在DATETIME表中找到了这些日期,但是似乎没有任何损坏的数据,该列设置为JOIN并且正常运行。
我已经花了两天的时间将大部分头发拉出来,以寻找这样的列或查询如何损坏而不会触发任何错误。

最佳答案

编辑:发布此消息后,我注意到实时存储在制造商表(和其他表)上有一个date_modified。另外,OC存储文字撇号,这些撇号弄乱了一些查询以及这些实体的JSON。

制造商表上的额外date_modified显然来自于名为“ OpenShop”的经过修改的OC安装。我们没有意识到在安装过程中会执行包含的.sql脚本。因此,使用JOIN进行的查询将拉动制造商date_modified而不是产品。

解决方案是在p.date_modified,SELECT中的getProduct()语句之后添加getProducts()(或要显式提取正确的修改后的其他任何JOIN查询)。另一种解决方案是删除那些第三方date_modified列,但是它们很方便。

此外,请小心制造商,选件等名称中的撇号。我们最终暂时将其删除,并将在以后编写更好的存储过程代码。

关于php - Opencarts $ this-> model_catalog_product-> getProducts()返回错误/不存在的date_modified,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31482438/

10-11 22:04