1、查询结果row方法
$query = $this->db->query("要执行的 SQL"); $result = $query->row();如果查询的结果在数据库中不存在。$query->row() 返回的不是对象,而是空数组。
DB_result.php中相关代码如下:
/** * Query result. "object" version. * * @access public * @return object */ public function result_object() { if (count($this->result_object) > 0) { return $this->result_object; } // In the event that query caching is on the result_id variable // will return FALSE since there isn't a valid SQL resource so // we'll simply return an empty array. if ($this->result_id === FALSE OR $this->num_rows() == 0) { return array();//------>如果没有数据,这里返回空数组。 } $this->_data_seek(0); while ($row = $this->_fetch_object()) { $this->result_object[] = $row; } return $this->result_object; }
result()方法,执行成功,返回一个对象数组(数组的元素由对象构成)。执行失败,返回一个空数组。详情:http://codeigniter.org.cn/user_guide/database/results.html
例如,在有数据的情况下:
模型: function get_waiter() { $sql='select id,number,name,sort from waiter order by sort asc,id desc'; return $this->db->query($sql); } 控制器: function index() { $query=$this->waiter_model->get_waiter(); print_r($query); }
Array ( [0] => stdClass Object ( [id] => 4 [number] => 20000 [name] => wubaojie [sort] => 0 ) [1] => stdClass Object ( [id] => 1 [number] => 10000 [name] => mm [sort] => 1 ) )访问方式:
$result=$query->result(); foreach($result as $row) { echo $row->id.'<br>';//不能使用 $row['id']这样的方式访问。 }
result()方法,有一个参数。默认为object。默认情况下,等同于result_object()方法。如果参数为array,则等同于result_array()方法。
result_array()方法,执行成功,则返回一个关联数组。执行失败,返回一个空数组。