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安装攻略:常见问题解答(二)
Oct 09 PHP
深入PHP购物车模块功能分析(函数讲解,附源码)
Jun 25 PHP
php文件服务实现虚拟挂载其他目录示例
Apr 17 PHP
PHP中Fatal error session_start()错误解决步骤
Aug 05 PHP
PHP+jquery+ajax实现即时聊天功能实例
Dec 23 PHP
javascript数组与php数组的地址传递及值传递用法实例
Jan 22 PHP
通过php删除xml文档内容的方法
Jan 23 PHP
PHP中的闭包(匿名函数)浅析
Feb 07 PHP
PHP实现截取中文字符串不出现?号的解决方法
Dec 29 PHP
ThinkPHP框架实现数据增删改
May 07 PHP
PHP预定义超全局数组变量小结
Aug 20 PHP
PHP获取远程http或ftp文件的md5值的方法
Apr 15 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
简单的php 验证图片生成函数
2009/05/21 PHP
PHP_Cooikes不同页面无法传递的解决方法
2014/03/07 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
JSON两种结构之对象和数组的理解
2016/07/19 PHP
注释PHP和html混合代码的小技巧(分享)
2016/11/03 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
PHP array_reduce()函数的应用解析
2018/10/28 PHP
广告显示判断
2006/08/31 Javascript
js通过更改按钮的显示样式实现按钮的滑动效果
2014/04/23 Javascript
JavaScript实现当网页加载完成后执行指定函数的方法
2015/03/21 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
JS排序算法之希尔排序与快速排序实现方法
2017/12/12 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
Vue中使用sass实现换肤功能
2018/09/07 Javascript
JavaScript禁用右键单击优缺点分析
2019/01/20 Javascript
详解elementui之el-image-viewer(图片查看器)
2019/08/30 Javascript
解决iView Table组件宽度只变大不变小的问题
2020/11/13 Javascript
[54:58]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第一场 11.25
2020/11/25 DOTA
python搭建简易服务器分析与实现
2012/12/15 Python
python使用urllib2实现发送带cookie的请求
2015/04/28 Python
python中in在list和dict中查找效率的对比分析
2018/05/04 Python
在django中,关于session的通用设置方法
2019/08/06 Python
html5小程序飞入购物车(抛物线绘制运动轨迹点)
2020/10/19 HTML / CSS
华丽的手绘陶瓷:MacKenzie-Childs
2017/02/04 全球购物
.NET面试10题
2014/02/24 面试题
毕业生动漫设计求职信
2013/10/11 职场文书
银行优秀员工事迹材料
2014/05/29 职场文书
运动会方阵口号
2014/06/07 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
社团活动总结报告
2014/06/27 职场文书
2015年数学教师工作总结
2015/05/20 职场文书
学校趣味运动会开幕词
2016/03/04 职场文书
2019中秋节祝福语大全,提前收藏啦
2019/09/10 职场文书
基于Nginx实现限制某IP短时间访问次数
2021/03/31 Servers
python多次执行绘制条形图
2022/04/20 Python