gpt4 book ai didi

php - DQL 不接受日期

转载 作者:行者123 更新时间:2023-12-01 00:38:07 27 4
gpt4 key购买 nike

我有这个存储库功能来选择特定日期内与图像拟合相关的所有投票:

public function getTopNImages(int $n)
{

$date = date_format(new \DateTime('first day of this month'), 'Y-m-d H:i:s');

var_dump($date);

$q2 = $this->createQueryBuilder('aliasi2')
->select('count(v.id)')
->innerJoin('aliasi2.votes', 'v')
->where('aliasi2 = i')
->andwhere("date_diff(v.date, $date) >= 0");

return $this->createQueryBuilder('i')
->select(array(
'i',
'(' . $q2->getDQL() .') votes'
))
->orderBy('votes', 'DESC')
->setMaxResults($n)
->getQuery()
->getResult();
}

我使用的日期格式与 mysql 中的格式相同,var_dump 输出如下:

string(19) "2017-03-01 09:39:34"

但出于某种原因我得到了这个:

[Syntax Error] line 0, col 137: Error: Expected Doctrine\ORM\Query\Lexer::T_CLOSE_PARENTHESIS, got '-'

这可能是什么问题?

最佳答案

您忘记用简单的引号保护您的日期,所以词法分析器在第一个 '-' 处失败。

请看这里的问题:

"date_diff(v.date, 2017-03-01 09:39:34) >= 0"

你需要这样做:

"date_diff(v.date, '$date') >= 0"

或者更好地使用 setParameter()

关于php - DQL 不接受日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42551953/

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