CI数据库参考
2016-05-12 19:53
351 查看
生成查询结果
有几种不同的方法可以生成查询结果- 结果行
- 结果数组
- 自定义结果对象
- 结果辅助方法
结果数组
result()方法
该方法返回一个对象数组$query = $this->db->query("YOUR QUERY"); foreach ($query->result() as $row) { echo $row->title; echo $row->name; echo $row->body; }
我们还可以传一个字符串参数给result()方法,这个字符串参数代表你想要把妹个结果转换成某个类的类名(这个类必须已经加载)
$query = $this->db->query("SELECT * FROM users;"); foreach ($query->result('User') as $user) { echo $user->name; // access attributes echo $user->reverse_name(); // or methods defined on the 'User' class }
result_array()方法
该方法返回一个纯粹的数组,如果没有结果,就返回一个空的数组。一般也是在foreach循环中使用。$query = $this->db->query("YOUR QUERY"); foreach ($query->result_array() as $row) { echo $row['title']; echo $row['name']; echo $row['body']; }
结果行
row()方法
该方法返回单独1行,如果结果不止一行,它只返回第一行。结果是对象形式。$query = $this->db->query("YOUR QUERY"); $row = $query->row(); if (isset($row)) { echo $row->title; echo $row->name; echo $row->body; }
如果要返回特定行的数据,可以将行号作为第一个参数传进去。
$row = $query->row(5);
这里还可以加上第二个参数,把参数作为字符串类型,代表把你想要的结果转换成某个类的类名。
$query = $this->db->query("SELECT * FROM users LIMIT 1;"); $row = $query->row(0, 'User'); echo $row->name; // access attributes echo $row->reverse_name(); // or methods defined on the 'User' class
row_array()方法
这个方法返回的是一个数组,而不是一个对象,其他的和row()方法一样,里面可以传参数。
$query = $this->db->query("YOUR QUERY"); $row = $query->row_array(); if (isset($row)) { echo $row['title']; echo $row['name']; echo $row['body']; }
可以从下面的方法从结果集中获取前一个,后一个或者最后一个结果:
$row = $query->first_row() $row = $query->last_row() $row = $query->next_row() $row = $query->previous_row()
这些方法默认是返回对象,如果需要返回数组,将”array”作为参数传入即可。
$row = $query->first_row('array')
上面的这些方法都会把所有的结果加载到内存(预读取),当处理结果大结果集时最好使用unbuffered_row()方法。
自定义结果对象
使用自定义结果对象时,类必须已经被加载到内存中。class User { public $id; public $email; public $username; protected $last_login; public function last_login($format) { return $this->last_login->format($format); } public function __set($name, $value) { if ($name === 'last_login') { $this->last_login = DateTime::createFromFormat('U', $value); } } public function __get($name) { if (isset($this->$name)) { return $this->$name; } } }
custom_result_object()
返回所有的结果集,参数是类的名字。$query = $this->db->query("YOUR QUERY"); $rows = $query->custom_result_object('User'); foreach ($rows as $row) { echo $row->id; echo $row->email; echo $row->last_login('Y-m-d'); }
custom_row_object()
从结果集中返回1行。第一个参数是行号,第二个参数是类名。$row = $query->custom_row_object(0, 'User');
free_result()
此方法释放查询结果所占的内存。$query2->free_result();
查询辅助函数
关于执行查询的信息
$this->db->insert_id()
返回新插入行的ID$this->db->affected_rows()
返回插入更新时,受影响的行数相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马