codeigniter自带数据库类使用方法说明


Posted in PHP onMarch 25, 2014

初始化数据库类

依据你的数据库配置载入并初始化数据库类:

this->load->database();

被载入之后你可以在任何地方使用它。

以对象形式返回查询结果

$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result() as $row)
{
    echo $row->title;
    echo $row->name;
    echo $row->email;
}
echo 'Total Results: ' . $query->num_rows();

上面的result()函数返回一个对象的数组。例如:$row->title

以数组形式返回查询结果

$query = $this->db->query('SELECT name, title, email FROM my_table');
foreach ($query->result_array() as $row)
{
    echo $row['title'];
    echo $row['name'];
    echo $row['email'];
}

上面的result_array()函数返回一个带下标的数组。例如:$row['title']

返回一条数据

对象形式:

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row();
echo $row->name;

上面的row()函数返回一个 对象。例如:$row->name

数组形式:

$query = $this->db->query('SELECT name FROM my_table LIMIT 1');
$row = $query->row_array();
echo $row['name'];

上面的row_array()函数返回一个 数组。例如:$row['name']

插入(insert)数据

$sql = "INSERT INTO mytable (title, name) 
VALUES (".$this->db->escape($title).", ".$this->db->escape($name).")";
$this->db->query($sql);
echo $this->db->affected_rows();

数据库配置

CodeIgniter 有一个配置文件让你存放数据库连接值(username:用户名,password:密码,database name:数据库名,等等..). 配置文件位于以下路径:application/config/database.php

配件文件存放在一个如下格式的一个多维数组里:

$db['default']['hostname'] = "localhost";
$db['default']['username'] = "root";
$db['default']['password'] = "";
$db['default']['database'] = "database_name";
$db['default']['dbdriver'] = "mysql";
$db['default']['dbprefix'] = "";
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = FALSE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = "";
$db['default']['char_set'] = "utf8";
$db['default']['dbcollat'] = "utf8_general_ci";

使用多维数组的原因是为了让你随意的存储多个连接值的设置。举例:如果你运行多个环境(development:开发、production:制作、test:测试 等等..),你能为每个环境建立独立的连接组,并在组直接进行切换。举例,设置一个"test"环境,你可以这样做:

$db['test']['hostname'] = "localhost";
$db['test']['username'] = "root";
$db['test']['password'] = "";
$db['test']['database'] = "database_name";
$db['test']['dbdriver'] = "mysql";
$db['test']['dbprefix'] = "";
$db['test']['pconnect'] = TRUE;
$db['test']['db_debug'] = FALSE;
$db['test']['cache_on'] = FALSE;
$db['test']['cachedir'] = "";
$db['test']['char_set'] = "utf8";
$db['test']['dbcollat'] = "utf8_general_ci";

那么,告诉系统使用"test"组,你可以设置位于配置文件中的变量:

$active_group = "test";

注意: "test"的名字是任意的,这可以让你自由设置,我们的主要连接默认使用"default"这个名字,当然,您可以基于您的项目为它起一个更有意义的名字。

Active Record

Active Record 类 可以通过数据库配置文件里的$active_record变量进行全局的设定(允许/禁止 TRUE/FALSE (boolean)). 如果你不用这个类,哪么你可以通过将这个变量值设置成FALSE来减少在数据库类初始化时对电脑资源的消耗。 $active_record = TRUE;

注意: 一些CodeIgniter的类,例如Sessions,在执行一些函数的时候需要Active Records的支持。

参数解析:

hostname - 数据库的主机名,通常位于本机,可以表示为 "localhost".
username - 需要连接到数据库的用户名.
password - 登陆数据库的密码.
database - 你需要连接的数据库名.
dbdriver - 数据库类型。如:mysql、postgres、odbc 等。必须为小写字母。
dbprefix - 当运行Active Record查询时数据表的前缀,它允许在一个数据库上安装多个CodeIgniter程序.
pconnect - TRUE/FALSE (boolean) - 使用持续连接.
db_debug - TRUE/FALSE (boolean) - 显示数据库错误信息.
cache_on - TRUE/FALSE (boolean) - 数据库查询缓存是否开启,详情请见数据库缓存类。
cachedir - 数据库查询缓存目录所在的服务器绝对路径。
char_set - 与数据库通信时所使用的字符集。
dbcollat - 与数据库通信时所使用的字符规则(character collation )。
port - 数据库端口号. 当前只用于 Postgres 驱动程序. 要使用这个值,你应该添加一行代码到数据库配置数组。

PHP 相关文章推荐
PHP中extract()函数的妙用分析
Jul 11 PHP
设置php页面编码的两种方法示例介绍
Mar 03 PHP
easyui的tabs update正确用法分享
Mar 21 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
Nov 19 PHP
php统计数组元素个数的方法
Jul 02 PHP
PHP的文件操作与算法实现的面试题示例
Aug 10 PHP
php array_map使用自定义的函数处理数组中的每个值
Oct 26 PHP
php5.3后静态绑定用法详解
Nov 11 PHP
php中final关键字用法分析
Dec 07 PHP
PHP文件与目录操作示例
Dec 24 PHP
php图像验证码生成代码
Jun 08 PHP
php实现微信支付之现金红包
May 30 PHP
php使用codebase生成随机数
Mar 25 #PHP
php中stream(流)的用法
Mar 25 #PHP
PHP对接微信公众平台消息接口开发流程教程
Mar 25 #PHP
php操作MongoDB基础教程(连接、新增、修改、删除、查询)
Mar 25 #PHP
php获取域名的google收录示例
Mar 24 #PHP
php 使用GD库为页面增加水印示例代码
Mar 24 #PHP
php检测useragent版本示例
Mar 24 #PHP
You might like
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php笔记之:AOP的应用
2013/04/24 PHP
php反射应用示例
2014/02/25 PHP
浅谈PHP Cookie处理函数
2016/06/10 PHP
PHP实现百度人脸识别
2019/05/06 PHP
javascript高级程序设计第二版第十二章事件要点总结(常用的跨浏览器检测方法)
2012/08/22 Javascript
关于Javascript 对象(object)的prototype
2014/05/09 Javascript
js使用循环清空某个div中的input标签值
2014/09/29 Javascript
node.js中的buffer.Buffer.isEncoding方法使用说明
2014/12/14 Javascript
setinterval()与clearInterval()JS函数的调用方法
2015/01/21 Javascript
JavaScript AOP编程实例
2015/06/16 Javascript
javascript实现自动输出文本(打字特效)
2015/08/27 Javascript
Javascript中Date类型和Math类型详解
2016/02/27 Javascript
AngularJS 控制器 controller的详解
2017/10/17 Javascript
Vue2.0用户权限控制解决方案
2017/11/29 Javascript
如何为vuex实现带参数的 getter和state.commit
2019/01/04 Javascript
Node.js实现简单管理系统
2019/09/23 Javascript
js使用文档就绪函数动态改变页面内容示例【innerHTML、innerText】
2019/11/07 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
2020/07/22 Javascript
解决VUE项目localhost端口服务器拒绝连接,只能用127.0.0.1的问题
2020/08/14 Javascript
Python中MYSQLdb出现乱码的解决方法
2014/10/11 Python
Python爬取Coursera课程资源的详细过程
2014/11/04 Python
Python 数据结构之旋转链表
2017/02/25 Python
python opencv 直方图反向投影的方法
2018/02/24 Python
python实现石头剪刀布小游戏
2021/01/20 Python
Python解决pip install时出现的Could not fetch URL问题
2019/08/01 Python
opencv设置采集视频分辨率方式
2019/12/10 Python
学生如何注册Pycharm专业版以及pycharm的安装
2020/09/24 Python
删除pycharm鼠标右键快捷键打开项目的操作
2021/01/16 Python
html5音频_动力节点Java学院整理
2018/08/22 HTML / CSS
BOSE德国官网:尽探索之力,享音乐之极
2016/12/11 全球购物
加拿大快时尚零售商:Ardene
2018/02/14 全球购物
医学生职业生涯规划书范文
2014/03/13 职场文书
群众路线教育实践活动对照检查材料思想汇报(副处级领导)
2014/10/04 职场文书
中学语文教学反思
2016/02/16 职场文书
区域销售大会开幕词
2016/03/04 职场文书