gpt4 book ai didi

php - Opencarts $this->model_catalog_product->getProducts() 返回错误/不存在的 date_modified

转载 作者:行者123 更新时间:2023-11-29 22:12:35 24 4
gpt4 key购买 nike

我正在为 Opencart 制作一个 Atom feeder,它似乎在库存 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。库存和实时 getProducts() 之间的代码没有区别。
  • 我已在 OC 外部重建了数据库连接,并成功拉取了 date_modified,而没有将任何 LEFT JOIN 表放入架构中。
  • 我已在 manufacturer 表中找到这些日期,但似乎没有任何损坏的数据,该列设置为 DATETIMEJOIN 运行正常。
  • 我花了 2 天的时间绞尽脑汁地寻找一个列或这个查询如何会像这样崩溃而不触发任何错误。

最佳答案

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

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

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

此外,请注意制造商、选项等名称中的撇号。我们最终暂时删除了它们,稍后将编写更好的存储过程。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com