模型查询错误中的Phalcon DateTime



我正在尝试执行这样的查询:

Select * from table where created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)在Phalcon模型查询形式中。但是我一直遇到以下错误:

语法错误,意外的令牌整数(1),接近" day)",

通过查询建筑物如下

$donations = Donations::query()
        ->where('created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)')
        ->execute();

上面的代码给了我这个错误。现在我已经尝试了以下

$donations = Donations::query()
        ->where('created_at > :holder:')
        ->bind(["holder" => 'DATE_SUB(NOW(), INTERVAL 1 DAY)'])
        ->execute();

尽管这种绑定并没有给我一个错误,但它给了我0的结果,但是我在表中插入了几行以检查此问题,当我在phpmyadmin中执行查询时,它可以正常工作,所以我认为可能会有在我的Phalcon库设置中,DateTime混合了,但是当我从1 DAY更改为1 MONTH时,仍然没有结果。有人可以指导我吗?

INTERVALDATE_SUBNOW()和其他类似的功能仅是phql。

不支持。

您有两个选择:

1)使用PHP日期重写WHERE条件:

$date = date('Y-m-d', strtotime('-1 DAY')); // Modify according to your date format
$donations = Donations::query()
    ->where('created_at > :holder:')
    ->bind(["holder" => $date)
    ->execute();

2)用方言类扩展MySQL:

$di->set('db', function() use ($config) {
    return new PhalconDbAdapterPdoMysql(array(
        "host"         => $config->database->host,
        "username"     => $config->database->username,
        "password"     => $config->database->password,
        "dbname"       => $config->database->name,
        "dialectClass" => 'PhalconDbDialectMysqlExtended'
    ));
});

以下链接中的更多信息:

如何扩展: https://forum.phalconphp.com/discussion/1748/date-sub-interval-mysql#c6291

方言类本身: https://github.com/phalcon/incubator/blob/master/master/library/phalcon/dialect/dialect/mysqlextended.php

最新更新