Php 模型查询中的Phalcon日期时间错误
我正在尝试执行如下查询:Php 模型查询中的Phalcon日期时间错误,php,mysql,datetime,phalcon,phalcon-orm,Php,Mysql,Datetime,Phalcon,Phalcon Orm,我正在尝试执行如下查询: 在phalcon模型查询表单中从创建日期子表(现在(),间隔1天)中选择*。但我一直得到以下错误: 语法错误,意外的令牌整数(1),接近“天” 按查询建筑如下所示 $donations = Donations::query() ->where('created_at > DATE_SUB(NOW(), INTERVAL 1 DAY)') ->execute(); $donations = Donations::quer
在phalcon模型查询表单中从创建日期子表(现在(),间隔1天)中选择*
。但我一直得到以下错误:
语法错误,意外的令牌整数(1),接近“天”
按查询建筑如下所示
$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();
上面的代码给了我这个错误。现在我已经试过了
$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库设置中可能存在日期时间混淆,但当我从
1天
更改为1个月
时,仍然没有结果。有人能给我介绍一下吗。INTERVAL
、DATE\u SUB
、NOW()
和其他类似功能都是MySQL独有的功能,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 \Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => $config->database->host,
"username" => $config->database->username,
"password" => $config->database->password,
"dbname" => $config->database->name,
"dialectClass" => '\Phalcon\Db\Dialect\MysqlExtended'
));
});
更多信息请访问以下链接:
如何扩展:
方言类本身:
INTERVAL
、DATE\u SUB
、NOW()
和其他类似的功能仅限于MySQL,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 \Phalcon\Db\Adapter\Pdo\Mysql(array(
"host" => $config->database->host,
"username" => $config->database->username,
"password" => $config->database->password,
"dbname" => $config->database->name,
"dialectClass" => '\Phalcon\Db\Dialect\MysqlExtended'
));
});
更多信息请访问以下链接:
如何扩展:
方言类本身:我没有使用phalcon框架,但基于其他框架,我认为这与where函数需要知道它是本机sql功能这一事实有关。尝试->where(new RawValue('created_at>DATE_SUB(NOW(),INTERVAL 1 DAY)))我没有使用phalcon框架,但基于其他框架,我认为这与where函数需要知道它是本机sql功能这一事实有关。尝试一下->where(new RawValue('created_at>DATE_SUB(NOW(),INTERVAL 1 DAY)),我会坚持使用php的DATE函数。干杯我将坚持使用php日期函数。干杯