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 相关文章推荐
用PHP和ACCESS写聊天室(五)
Oct 09 PHP
php excel类 phpExcel使用方法介绍
Aug 21 PHP
PHP设计模式 注册表模式(多个类的注册)
Feb 05 PHP
php预定义变量使用帮助(带实例)
Oct 30 PHP
php使用百度翻译api示例分享
Jan 31 PHP
php导出CSV抽象类实例
Sep 24 PHP
php第一次无法获取cookie问题处理
Dec 15 PHP
PHP常用处理静态操作类
Apr 03 PHP
PHP代码优化技巧小结
Sep 29 PHP
iOS+PHP注册登录系统 PHP部分(上)
Dec 26 PHP
利用php-cli和任务计划实现订单同步功能的方法
May 03 PHP
Laravel中的Blade模板引擎示例详解
Oct 10 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
discuz论坛 用户登录 后台程序代码
2008/11/27 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
PHP中设置时区,记录日志文件的实现代码
2013/01/07 PHP
使用Jquery搭建最佳用户体验的登录页面之记住密码自动登录功能(含后台代码)
2011/07/10 Javascript
jQuery EasyUI API 中文文档 - Documentation 文档
2011/09/29 Javascript
判断输入是否为空,获得输入类型的JS代码
2013/10/30 Javascript
JavaScript伸缩的菜单简单示例
2013/12/03 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
js实现固定宽高滑动轮播图效果
2017/01/13 Javascript
详解通过JSON数据使用VUE.JS
2017/05/26 Javascript
详解webpack提取第三方库的正确姿势
2017/12/22 Javascript
Bootstrap 模态框多次显示后台提交多次BUG的解决方法
2017/12/26 Javascript
layui的table单击行勾选checkbox功能方法
2018/08/14 Javascript
在vue中使用SockJS实现webSocket通信的过程
2018/08/29 Javascript
Angular事件之不同组件间传递数据的方法
2018/11/15 Javascript
JS+CSS3实现的简易钟表效果示例
2019/04/13 Javascript
[01:11:21]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第三场 3月7日
2021/03/11 DOTA
Python3.x中自定义比较函数
2015/04/24 Python
深入理解Python中命名空间的查找规则LEGB
2015/08/06 Python
python中解析json格式文件的方法示例
2017/05/03 Python
python在非root权限下的安装方法
2018/01/23 Python
利用Python如何生成便签图片详解
2018/07/09 Python
Python判断一个文件夹内哪些文件是图片的实例
2018/12/07 Python
python实现贪吃蛇小游戏
2020/03/21 Python
wxPython+Matplotlib绘制折线图表
2019/11/19 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
CSS3使用transition属性实现过渡效果
2018/04/18 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
如何利用find命令查找文件
2015/02/07 面试题
主题团日活动总结
2014/06/25 职场文书
离婚起诉书怎么写
2015/05/19 职场文书
毕业实习单位意见
2015/06/04 职场文书
2015迎新晚会开场白
2015/07/17 职场文书
维护民族团结心得体会2016
2016/01/15 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
JavaScript事件的委托(代理)的用法示例详解
2022/02/18 Javascript