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 相关文章推荐
实时抓取YAHOO股票报价的代码
Oct 09 PHP
php之字符串变相相减的代码
Mar 19 PHP
PHP 变量定义和变量替换的方法
Jul 30 PHP
php url路由入门实例
Apr 23 PHP
PHP中定义数组常量(array常量)的方法
Nov 17 PHP
thinkphp配置连接数据库技巧
Dec 02 PHP
php实现的简单数据库操作Model类
Nov 16 PHP
Zend Framework动作控制器用法示例
Dec 09 PHP
PHP开发中csrf攻击的简单演示和防范
May 07 PHP
PDO::rollBack讲解
Jan 29 PHP
PHP实时统计中文字数和区别
Feb 28 PHP
laravel框架模板之公共模板、继承、包含实现方法分析
Aug 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
PHP insert语法详解
2008/06/07 PHP
PHP常用开发函数解析之数组篇[未完结]
2012/07/30 PHP
ThinkPHP跳转页success及error模板实例教程
2014/07/17 PHP
jQuery的运行机制和设计理念分析
2011/04/05 Javascript
jquery检测input checked 控件是否被选中的方法
2014/03/26 Javascript
JavaScript调用浏览器打印功能实例分析
2015/07/17 Javascript
jQuery.deferred对象使用详解
2016/03/18 Javascript
基于javascript制作经典传统的拼图游戏
2016/03/22 Javascript
jQuery实现的多张图无缝滚动效果【测试可用】
2016/09/12 Javascript
JS给swf传参数的实现方法
2016/09/13 Javascript
微信小程序之ES6与事项助手的功能实现
2016/11/30 Javascript
快速使用node.js进行web开发详解
2017/04/26 Javascript
xmlplus组件设计系列之下拉刷新(PullRefresh)(6)
2017/05/03 Javascript
H5基于iScroll实现下拉刷新和上拉加载更多
2017/07/18 Javascript
JavaScript判断变量名是否存在数组中的实例
2017/12/28 Javascript
解析Angular 2+ 样式绑定方式
2018/01/15 Javascript
微信小程序实现MUI数字输入框效果
2018/01/31 Javascript
vue检测对象和数组的变化分析
2018/06/30 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
vue 表单验证按钮事件交由父组件触发的方法
2018/12/17 Javascript
聊聊Vue 中 title 的动态修改问题
2019/06/11 Javascript
详解搭建一个vue-cli的移动端H5开发模板
2020/01/17 Javascript
vue 在methods中调用mounted的实现操作
2020/08/07 Javascript
Python中easy_install 和 pip 的安装及使用
2017/06/05 Python
PyQt4实现下拉菜单可供选择并打印出来
2018/04/20 Python
python 自定义异常和异常捕捉的方法
2018/10/18 Python
Django组件cookie与session的具体使用
2019/06/05 Python
30秒学会30个超实用Python代码片段【收藏版】
2019/10/15 Python
python调用百度API实现人脸识别
2020/11/17 Python
德国街头和运动文化高品质商店:BSTN Store
2017/08/26 全球购物
优秀管理者获奖感言
2014/02/17 职场文书
葬礼司仪主持词
2014/03/31 职场文书
社区护士演讲稿
2014/08/27 职场文书
手机被没收的检讨书
2014/10/04 职场文书
2015小学音乐教师个人工作总结
2015/07/21 职场文书
浅谈移动端中的视口(viewport)的具体使用
2021/04/13 HTML / CSS