gpt4 book ai didi

php - 在 Magento 中使用函数就是向带有函数的过滤器添加反引号。有什么好的方法可以使这些 MySQL 功能发挥作用吗?

转载 作者:行者123 更新时间:2023-11-29 01:36:56 24 4
gpt4 key购买 nike

我正在使用 Magento 1,我正在尝试使用以下代码按 week(created_time) 添加过滤器:

$week = 37;
$weekCollection = Mage::getModel('module/modle_name')->getCollection()
->addFieldToFilter("week(created_time)", $week);

不幸的是,整个函数周围都添加了反引号,所以我得到了错误

SQLSTATE[42S22]: Column not found: 1054 Unknown column 'week(created_time)' in 'where clause', query was: SELECT `main_table`.*, SUM(commission) AS `commission_total` FROM `affiliateplus_transaction` AS `main_table` WHERE (`account_id` = '1546') AND (`week(created_time)` = '37') GROUP BY week(created_time, 1)

Magento 1 中是否有将 MySQL 函数应用于列名的合法方法?

最佳答案

你必须使用 Zend_Db_Expr。如果 magento 遇到 Zend_Db_Expr 它只会将它解析为一个字符串并且不会以任何方式修改它。

所以它看起来像这样:

$week = 37;
$weekCollection = Mage::getModel('module/modle_name')->getCollection()
->addFieldToFilter(new Zend_Db_Expr("week(created_time)"), $week);

关于php - 在 Magento 中使用函数就是向带有函数的过滤器添加反引号。有什么好的方法可以使这些 MySQL 功能发挥作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39496209/

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