Codeigniter db->get() 返回空记录集
Posted
技术标签:
【中文标题】Codeigniter db->get() 返回空记录集【英文标题】:Codeigniter db->get() returns empty recordset 【发布时间】:2015-04-16 11:04:04 【问题描述】:我的表user
如下:
| user_id | first_name | moniker |
| 1 | Noah | noahsarkive |
| 2 | Homer | HomerK |
| 3 | Hot | Inflated |
| 4 | Wimpy | Wimpy B |
| 5 | Hubble | SharpEyes |
模型是User_model.php:
<?php
if ( ! defined('BASEPATH'))
exit('No direct script access allowed');
class User_model extends CI_Model
public function __construct()
parent::__construct();
public function get_users()
$this->db->select('user_id','first_name', 'moniker');
$this->db->from('user');
$rs = $this->db->get();
var_dump($rs);
return $rs;
但是当我执行var_dump($rs)
时,它会产生:
object(CI_DB_mysql_result)#25 (8)
["conn_id"]=>
resource(25) of type (mysql link persistent)
["result_id"]=>
resource(36) of type (mysql result)
["result_array"]=>
array(0)
["result_object"]=>
array(0)
["custom_result_object"]=>
array(0)
["current_row"]=>
int(0)
["num_rows"]=>
int(5)
["row_data"]=>
NULL
它返回正确的行数但没有数据! 再简单不过了,但我肯定遗漏了一些非常明显的东西。
感谢您的帮助。 诺亚
【问题讨论】:
$rs = $this->db->get()->result(); 【参考方案1】:你需要对结果对象做一些事情,like so:
$rs = $this->db->get();
foreach ($rs->result() as $row)
echo $row->user_id;
echo $row->first_name;
echo $row->moniker;
【讨论】:
但没有什么可回应的。结果集为空。注意 ["result_array"]=> array(0) IIRC,这些是类调用的空包装器,因此转储不会显示它。尝试简单地将您的代码更改为var_dump($rs->result_array());
并检查结果。【参考方案2】:
public function get_users()
$this->db->select('user_id ,first_name , moniker');//fix your select function like this
$this->db->from('user');
$rs = $this->db->get()->result();
var_dump($rs);
return $rs;
【讨论】:
【参考方案3】:是损坏的数据库。删除模式并恢复它,然后一切正常。
感谢您的帮助。
【讨论】:
【参考方案4】:试试这个,对你有帮助。
public function get_users()
$this->db->select('user_id','first_name', 'moniker');
$this->db->from('user');
$info = $this->db->get();
if($info->num_rows() > 0)
return $info->result();
else
return NULL;
【讨论】:
以上是关于Codeigniter db->get() 返回空记录集的主要内容,如果未能解决你的问题,请参考以下文章
ci codeigniter 查询 获取 一条数据 db select get row_array()