php - Codeigniter 查询生成器 - 查找特定日期的记录数不起作用

标签 php mysql sql codeigniter

在 codeigntier 中,我有以下内容:

echo $this->db->where('FROM_UNIXTIME(`last_login`) >=','NOW() - INTERVAL 1 DAY')->from('users')->count_all_results();

上面的结果是:0

我使用了 print_r($this->db->last_query());获取正在运行的实际sql字符串,如下所示:

 SELECT COUNT( * ) AS  `numrows` 
 FROM  `users` 
 WHERE FROM_UNIXTIME(  `last_login` ) >= NOW( ) - INTERVAL 1 
 DAY

当我使用 mysql 运行它时,我得到了正确的结果:1。

我猜测转义现在正在工作或者其他什么,但无法弄清楚。有什么想法吗?

==== 新更新。

抱歉,CI3 指出了这一点:

SELECT COUNT(*) AS `numrows`
FROM `users`
WHERE FROM_UNIXTIME(`last_login`) >= 'NOW() - INTERVAL 1 DAY'

当我在 mysql 中运行时,上面的结果为 0。当我使用下面时,它有效:

SELECT COUNT(*) AS `numrows`
FROM `users`
WHERE FROM_UNIXTIME(`last_login`) >= NOW() - INTERVAL 1 DAY

所以它是两个小撇号。我该如何解决这个问题?

最佳答案

我将语句更改为以下内容并且有效:

$this->db->where("FROM_UNIXTIME(`last_login`) >= NOW() - INTERVAL 1 DAY")->from('users')->count_all_results();

关于php - Codeigniter 查询生成器 - 查找特定日期的记录数不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55663485/

相关文章:

PHP 打印数组,每行一个键,这样看起来更容易?

mysql - SELECT SUM(CRC32(column)) LIMIT 不起作用

MySQL - 仅从 varchar 列中选择数值

sql - 在 Hive 0.13 中读取 CSV 文件,数据中也不带引号和逗号

sql - 如何在sql中使用order by和union all?

php - 数组键作为字符串和数字

php - Laravel 分页添加获取参数

php - 通过月度分配支付值(value)

mysql - 尝试获取字符串结果数组而不是 id

mysql - 从不同类别中选择项目,包括没有类别的文章