我现在使用Codeigniter活动记录一段时间了,这是我得到的最荒谬的错误。
我的查询是
$this->db->select('*');
$this->db->from('my_table');
$this->db->where('is_active', 1);
$query = $this->db->get();
if ($query->num_rows() > 0) {
//return $query->result();
return $query;
} else {
return FALSE;
}
当我使用$query->result();
时它是空的。当我使用return $query;
时
结果如下,
CI_DB_pdo_result Object
(
[num_rows] => 21
[conn_id] => PDO Object
(
)
[result_id] => PDOStatement Object
(
[queryString] => SELECT * FROM my_table WHERE is_active = 1
)
[result_array] => Array
(
)
[result_object] => Array
(
)
[custom_result_object] => Array
(
)
[current_row] => 0
[row_data] =>
)
伯爵是
[num_rows] => 21
这里缺少什么/问题?
答案 0 :(得分:1)
我找到了这个问题。发生这种情况是因为我的应用程序使用PDO DB Driver。不是MySQL驱动程序。
$listArray
所以我改变了我的模型以支持它。
$db['default']['dbdriver'] = 'pdo';
现在它工作正常。
我很抱歉你的时间。非常感谢你 试图提供帮助。
答案 1 :(得分:0)
试试这个
$this->db->select('*');
$this->db->from('my_table');
$this->db->where('is_active', 1);
$query = $this->db->get();
$result = $query->result_array();
if (count($result) > 0) {
return $result;
}
else{
return FALSE;
}
您没有格式化查询数组。格式化它。
答案 2 :(得分:0)
简单添加
$ query = $ this-> db-> get() - > result();
在你的代码中
$this->db->select('*');
$this->db->from('my_table');
$this->db->where('is_active', 1);
$query = $this->db->get()->result();
if ($query->num_rows() > 0) {
//return $query->result();
return $query;
} else {
return FALSE;
}
答案 3 :(得分:0)
if ($query->num_rows() > 0)
然后返回$query->result()
,以object
格式返回结果。就像这样..
if ($query->num_rows() > 0) {
return $query->result();
} else {
return FALSE;
}
然后使用arrow(->)
运算符检索所需的值。
有关详情,请参阅此处Codeigniter Result Formats
答案 4 :(得分:0)
如果你想获得结果,你必须使用row()或result()函数。
$this->db->select('*');
$this->db->from('my_table');
$this->db->where('is_active', 1);
$query = $this->db->get();
if ($query->num_rows() > 0) {
//return $query->result();
return $this->db->get()->result();
//return $query;
} else {
return FALSE;
}
答案 5 :(得分:0)
$this->db->select('*');
$this->db->from('my_table');
$this->db->where('is_active', 1);
$query = $this->db->get();
$i = 0;
foreach ($query->result() as $row) {
$i++;
$data['id'] = $row->id;
$data['username'] = $row->username;
}
if ($i > 0) {
return $data;
}