【发布时间】:2013-03-24 14:39:21
【问题描述】:
用户表
id stamp_created email_address
1 2013-03-06 22:00:01 test+1@gmail.com
2 2013-03-20 22:00:08 test+2@gmail.com
3 2013-03-27 22:00:17 test+3@gmail.com
4 2013-04-01 22:00:27 test+4@gmail.com
我有这个问题
SELECT
`user`.*
FROM
`user`
WHERE
`user`.`email_address` IS NOT NULL
AND (`user`.`stamp_created` BETWEEN '2013-04-01 00:00:00' AND '2013-04-01 23:59:59')
在 phpmyadmin 中运行查询时,我得到了正确的结果
4 2013-04-01 22:00:27 test+4@gmail.com
但是当我通过
运行查询时$sql = "SELECT
`user`.*
FROM
`user`
WHERE
`user`.`email_address` IS NOT NULL
AND (`user`.`stamp_created` BETWEEN '2013-04-01 00:00:00' AND '2013-04-01 23:59:59')
";
$this->db->query($sql)->result_array();
我得到一个空数组。
知道为什么会这样吗?
附:已经确认 CI 和 phpmyadmin 使用的是同一个数据库,所以这不是问题。
【问题讨论】:
-
$sql中有什么内容?你能说明你是如何为它分配 SQL 字符串的吗? -
如果您尝试稍微简化的查询,例如 -
select * from user,会发生什么? -
@arvinsim 返回值为空?如果是问题,您应该 return $this->db->query($sql)->result_array();
-
首先,运行 $this->db->last_query() 并确认发送的查询与您想的一样。
-
那么它是在你的 ->result_array() 之后的代码中的东西......你以某种方式丢失了保存结果的数组变量。发布模型函数和控制器的其余部分
标签: mysql codeigniter phpmyadmin