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中Date()时间日期函数的使用方法小结
Apr 20 PHP
apache mysql php 源码编译使用方法
May 03 PHP
php自动给文章加关键词链接的函数代码
Nov 29 PHP
ThinkPHP的截取字符串函数无法显示省略号的解决方法
Jun 25 PHP
PHP扩展模块memcached长连接使用方法分析
Dec 24 PHP
PHP实现的QQ空间g_tk加密算法
Jul 09 PHP
利用Fix Rss Feeds插件修复WordPress的Feed显示错误
Dec 19 PHP
php实现常见图片格式的水印和缩略图制作(面向对象)
Jun 15 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
PHP registerXPathNamespace()函数讲解
Feb 03 PHP
laravel框架实现去掉URL中index.php的方法
Oct 12 PHP
PHP中strval()函数实例用法
Jun 07 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之数据库操作详解及乱码解决!
2007/01/02 PHP
Windows IIS PHP 5.2 安装与配置方法
2009/06/08 PHP
PHP执行zip与rar解压缩方法实现代码
2010/12/05 PHP
php入门学习知识点四 PHP正则表达式基本应用
2011/07/14 PHP
PHP管理内存函数 memory_get_usage()使用介绍
2012/09/23 PHP
PHP ob缓存以及ob函数原理实例解析
2020/11/13 PHP
网页整体变灰白色(兼容各浏览器)实例
2013/04/21 Javascript
在父页面调用子页面的JS方法
2013/09/29 Javascript
探讨js中的双感叹号判断
2013/11/11 Javascript
原生JS绑定滑轮滚动事件兼容常见浏览器
2014/06/30 Javascript
浅谈JavaScript数据类型及转换
2015/02/28 Javascript
js跨域请求数据的3种常用的方法
2015/12/01 Javascript
JavaScript事件类型中UI事件详解
2016/01/14 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
JavaScript面向对象精要(下部)
2017/09/12 Javascript
基于vue 开发中出现警告问题去除方法
2018/01/25 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
Node.js利用console输出日志文件的方法示例
2018/04/27 Javascript
JavaScript多态与封装实例分析
2018/07/27 Javascript
微信小程序自定义头部导航栏(组件化)
2019/11/15 Javascript
python通过加号运算符操作列表的方法
2015/07/28 Python
python代码 if not x: 和 if x is not None: 和 if not x is None:使用介绍
2016/09/21 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
python 循环读取txt文档 并转换成csv的方法
2018/10/26 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
关于PyTorch 自动求导机制详解
2019/08/18 Python
代码总结Python2 和 Python3 字符串的区别
2020/01/28 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
小学班长竞选演讲稿
2014/04/24 职场文书
2015年加油站工作总结
2015/05/13 职场文书
2015年教师节广播稿
2015/08/19 职场文书
读《教育心理学》心得体会
2016/01/22 职场文书
2016年社区党支部公开承诺书
2016/03/25 职场文书
JavaScript实现简单图片切换
2021/04/29 Javascript
yyds什么意思?90后已经听不懂00后讲话了……
2022/02/03 杂记