Codeigniter db-> get()返回空记录集

时间:2015-02-16 00:27:50

标签: mysql codeigniter model

我的表格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
}

它返回正确的行数但没有数据! 不可能更简单,但我必须遗漏一些非常明显的东西。

感谢您的帮助。 诺亚

4 个答案:

答案 0 :(得分:0)

您需要对结果对象like so执行一些操作:

$rs = $this->db->get();
foreach ($rs->result() as $row)
{
   echo $row->user_id;
   echo $row->first_name;
   echo $row->moniker;
}

答案 1 :(得分:0)

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;
}

答案 2 :(得分:0)

数据库已损坏。删除了架构并将其恢复,然后全部运行正常。

感谢您的帮助。

答案 3 :(得分:0)

试试这个,它会对你有帮助。

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;
}