【发布时间】:2015-09-02 20:25:47
【问题描述】:
我在 CI 2.2 中有以下查询:
$query = $this->db->select($this->identity_column . ', username, email, id, password, active, last_login')
->where($this->identity_column, $this->db->escape_str($identity))
->limit(1)
->get($this->tables['users']);
然后我运行这个:
if ($query->num_rows() === 1)
{
$user = $query->row();
}
num_rows() 返回 1,所以我进入 if 语句,但 $query->row() 返回一个空数组。我已经运行了生成的 SQL,它实际上抓取了正确的行。
查询对象如下所示:
object(CI_DB_pdo_result)#381 (8) { ["num_rows"]=> int(1) ["conn_id"]=> object(PDO)#380 (0) { } ["result_id"]=> object(PDOStatement)#387 (1) { ["queryString"]=> string(115) "SELECT username, username, email, id, password, active, last_login FROM users WHERE username = 'CORAIR4JK' LIMIT 1" } ["result_array"]=> array(0) { } ["result_object"]=> array(0) { } ["custom_result_object"]=> array(0) { } ["current_row"]=> int(0) ["row_data"]=> NULL }
【问题讨论】:
-
在命令行mysql客户端运行查询会发生什么?那里的结果是什么?
-
我正在用正确的用户返回一行。我不知道为什么 PDO 驱动程序不工作,但 mysql 驱动程序是....但它是。
标签: php mysql codeigniter