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()方法,执行成功,则返回一个关联数组。执行失败,返回一个空数组。