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 相关文章推荐
paypal即时到账php实现代码
Nov 28 PHP
ecshop 批量上传(加入自定义属性)
Mar 20 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
thinkphp 多表 事务详解
Jun 17 PHP
页面乱码问题的根源及其分析
Aug 09 PHP
二进制交叉权限微型php类分享
Feb 07 PHP
在WordPress的文章编辑器中设置默认内容的方法
Dec 29 PHP
php实现留言板功能(会话控制)
May 23 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP实现一个限制实例化次数的类示例
Sep 16 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
Apr 04 PHP
PhpStorm+xdebug+postman调试技巧分享
Sep 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操作excel文件 基于phpexcel
2010/07/02 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
支持中文和其他编码的php截取字符串函数分享(截取中文字符串)
2014/03/13 PHP
功能强大的PHP POST提交数据类
2016/07/15 PHP
基于ThinkPHP5.0实现图片上传插件
2017/09/25 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
利用JQuery和JS实现奇偶行背景颜色自定义效果
2012/11/19 Javascript
angularjs的一些优化小技巧
2014/12/06 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
Angular1.x复杂指令实例详解
2017/03/01 Javascript
nodejs模块nodemailer基本使用-邮件发送示例(支持附件)
2017/03/28 NodeJs
基于Vue中使用节流Lodash throttle详解
2019/10/30 Javascript
vue 添加和编辑用同一个表单,el-form表单提交后清空表单数据操作
2020/08/03 Javascript
JavaScript中常用的3种弹出提示框(alert、confirm、prompt)
2020/11/10 Javascript
vue 获取到数据但却渲染不到页面上的解决方法
2020/11/19 Vue.js
[01:07:11]Secret vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python列表与元组详解实例
2013/11/01 Python
Python字符串拼接、截取及替换方法总结分析
2016/04/13 Python
Python中struct模块对字节流/二进制流的操作教程
2017/01/21 Python
python3 反射的四种基本方法解析
2019/08/26 Python
python 6行代码制作月历生成器
2020/09/18 Python
请解释接口的显式实现有什么意义
2012/05/26 面试题
中班中秋节活动反思
2014/02/18 职场文书
我与祖国共奋进演讲稿
2014/09/13 职场文书
贫困证明模板(3篇)
2014/09/16 职场文书
党员群众路线自我剖析材料
2014/10/06 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
怎样写辞职信
2015/02/27 职场文书
财务出纳岗位职责
2015/03/31 职场文书
民事二审代理词
2015/05/25 职场文书
2015年“我们的节日·中秋节”活动总结
2015/07/30 职场文书
2016应届毕业生实习评语
2015/12/01 职场文书
Python 中的 copy()和deepcopy()
2021/11/07 Python
python中Pyqt5使用Qlabel标签播放视频
2022/04/22 Python
优化Mysql查询的示例
2022/04/26 MySQL