gpt4 book ai didi

php - MySQL 查询未在 phalcon 中执行

转载 作者:行者123 更新时间:2023-11-29 04:42:49 24 4
gpt4 key购买 nike

使用phalcon框架

这个 mysql 查询的目的是返回最近 1 天内某个论坛的评论数:

SELECT fc.forum_id, count( fc.forum_id ) AS total_comments
FROM forum_comments AS fc
WHERE DATE_SUB( CURDATE( ) , INTERVAL 1
DAY ) <= fc.updated_at
GROUP BY fc.forum_id
ORDER BY total_comments DESC
LIMIT 0 , 30

它将在 phpmyadmin 中正确运行,但 phalcon 抛出:

Notice: Trying to get property of non-object in C:\xampp\htdocs\sidra\app\controllers\ApiController.php on line 810 Syntax error, unexpected token INTEGER(1), near to ' DAY ) <= fc.updated_at GROUP BY fc.forum_id ORDER BY total_comments DESC ', when parsing: SELECT fc.forum_id,count(fc.forum_id)as total_comments FROM ForumComments as fc WHERE DATE_SUB( CURDATE( ) , INTERVAL 1 DAY ) <= fc.updated_at GROUP BY fc.forum_id ORDER BY total_comments DESC (215)

我的 phalcon 代码:

$sql = "SELECT fc.forum_id,count(fc.forum_id)as total_comments ".
"FROM ForumComments as fc ".
"WHERE DATE_SUB( CURDATE( ) , INTERVAL 1
DAY ) <= fc.updated_at ".
"GROUP BY fc.forum_id ".
"ORDER BY total_comments DESC ";

$query = $this->modelsManager->createQuery($sql);
$staff = $query->execute()->toArray();

有没有其他方法可以做到这一点?

最佳答案

您的查询是正确的,并且适用于 4.1 到 5.6.6 的 MySQL 版本。所以看起来 createQuery() 方法试图解析查询并在 INTERVAL 子句上失败。我建议您尝试这样的操作:

$yesterday = date('Y-m-d', strtotime("-1 days"));

$sql = "SELECT fc.forum_id,count(fc.forum_id)as total_comments ".
"FROM ForumComments as fc ".
"WHERE '$yesterday' <= fc.updated_at ".
"GROUP BY fc.forum_id ".
"ORDER BY total_comments DESC ";

$query = $this->modelsManager->createQuery($sql);
$staff = $query->execute()->toArray();

关于php - MySQL 查询未在 phalcon 中执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24901349/

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