Codeigniter操作数据库表的优化写法总结


Posted in PHP onJune 12, 2014

用codeigniter也有一段时间了,一直没有做什么总结。现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学。

链接数据库

$this->load->database();//手动连接数据库
//连接多数据库
$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);

查询

//参数绑定形式
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; 
$this->db->query($sql, array(3, 'live', 'Rick'));//多结果标准查询
$query = $this->db->query($sql); //自定义
$query = $this->db->get('tablename'); //便捷形式,相当于:SELECT * FROM tablename
$query = $this->db->get('tablename', 10, 20); // 相当于: SELECT * FROM tablename LIMIT 20, 10
$query->result() //对象形式
$query->result_array() //数组形式
/*
foreach ($query->result() as $row)
{
    echo $row->title;
    echo $row->name;
    echo $row->email;
}
*/
$query->num_rows() //总条数
$query->num_fields() //字段数
//单结果标准查询
$row = $query->row(); //对象形式
$row = $query->row_array(); //数组形式
/*
$row = $query->row_array();
echo $row['name'];
*/

 

插入

$data = array(
                'title' => $title,
                'name' => $name
                );
$this->db->insert('tablename', $data); //便捷插入
$this->db->insert_string('tablename', $data);  //便捷插入$this->db->insert_id() //刚插入的id
$this->db->affected_rows() //影响的行数(update,insert)

更新

$data = array(
                'name' => $name, 
                'email' => $email
                );
$where = "id = 1"; 
$this->db->update('tablename', $data); 
$this->db->update_string('tablename', $data, $where);

删除

$array = array(
                'name' => $name, 
                'title' => $title
                );
$this->db->delete('tablename', $array); // Produces:
// "DELETE FROM tablename WHERE name = '$name' AND title = "$title""
$this->db->truncate('tablename'); //清空表
// Produce: TRUNCATE tablename
 
-----------------------------------------------------
(where)
-------
$array = array(
                'name' => $name, 
                'title' => $title
                );
$this->db->where($array); 
// Produces: "WHERE name = '$name' AND title = "$title"" 
-----------------------------------------------------
$this->db->count_all('tablename'); //表中记录总行数
-----------------------------------------------------
$query->free_result() //释放资源
PHP 相关文章推荐
DISCUZ 分页代码
Jan 02 PHP
php中时间轴开发(刚刚、5分钟前、昨天10:23等)
Oct 03 PHP
Yii PHP Framework实用入门教程(详细介绍)
Jun 18 PHP
php遍历文件夹和文件列表示例分享
Mar 11 PHP
xss防御之php利用httponly防xss攻击
Mar 21 PHP
PHP中copy on write写时复制机制介绍
May 13 PHP
PHP实现的多彩标签效果代码分享
Aug 21 PHP
php的ZipArchive类用法实例
Oct 20 PHP
php校验表单检测字段是否为空的方法
Mar 20 PHP
浅谈PHP值mysql操作类
Jun 29 PHP
PHP基于方差和标准差计算学生成绩的稳定性示例
Jul 04 PHP
php设计模式之备忘模式分析【星际争霸游戏案例】
Mar 24 PHP
codeigniter数据库操作函数汇总
Jun 12 #PHP
使用PHP函数scandir排除特定目录
Jun 12 #PHP
使用配置类定义Codeigniter全局变量
Jun 12 #PHP
CodeIgniter输出中文乱码的两种解决办法
Jun 12 #PHP
CI使用Tank Auth转移数据库导致密码用户错误的解决办法
Jun 12 #PHP
Codeigniter中禁止A Database Error Occurred错误提示的方法
Jun 12 #PHP
php 过滤英文标点符号及过滤中文标点符号代码
Jun 12 #PHP
You might like
php类
2006/11/27 PHP
ThinkPHP采用模块和操作分析
2011/04/18 PHP
PHP连接MongoDB示例代码
2012/09/06 PHP
php include和require的区别深入解析
2013/06/17 PHP
使用CSS3的scale实现网页整体缩放
2014/03/18 Javascript
html的DOM中document对象anchors集合用法实例
2015/01/21 Javascript
jQuery监控文本框事件并作相应处理的方法
2015/04/16 Javascript
解决jQuery使用JSONP时产生的错误
2015/12/02 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
2016/05/31 Javascript
jquery easyUI中ajax异步校验用户名
2016/08/19 Javascript
Jquery Easyui对话框组件Dialog使用详解(14)
2016/12/19 Javascript
Angular的模块化(代码分享)
2016/12/26 Javascript
Mongoose经常返回e11000 error的原因分析
2017/03/29 Javascript
nodejs密码加密中生成随机数的实例代码
2017/07/17 NodeJs
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
详解webpack 最简打包结果分析
2019/02/20 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
javascript实现超好看的3D烟花特效
2020/01/01 Javascript
[48:30]LGD vs infamous Supermajor小组赛D组 BO3 第一场 6.3
2018/06/04 DOTA
[48:28]完美世界DOTA2联赛循环赛FTD vs Magma第二场 10月30日
2020/10/31 DOTA
python mysqldb连接数据库
2009/03/16 Python
Python中文件遍历的两种方法
2014/06/16 Python
Python2.7简单连接与操作MySQL的方法
2016/04/27 Python
利用Python找出序列中出现最多的元素示例代码
2017/12/08 Python
Python爬虫包BeautifulSoup实例(三)
2018/06/17 Python
Python操作Excel插入删除行的方法
2018/12/10 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
html svg生成环形进度条的实现方法
2019/09/23 HTML / CSS
size?瑞典:英国伦敦的球鞋精品店
2018/03/01 全球购物
来自世界各地的饮料:Flavourly
2019/05/06 全球购物
阿迪达斯印尼官方网站:adidas印尼
2020/02/10 全球购物
Sony C++笔试题
2013/03/10 面试题
小学教师师德演讲稿
2014/05/06 职场文书
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
运动与健康自我评价
2015/03/09 职场文书