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公用函数列表[正则]
Feb 22 PHP
php session处理的定制
Mar 16 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
May 16 PHP
PHP发明人谈MVC和网站设计架构 貌似他不支持php用mvc
Jun 04 PHP
php数组函数序列之end() - 移动数组内部指针到最后一个元素,并返回该元素的值
Oct 31 PHP
openflashchart 2.0 简单案例php版
May 21 PHP
mysql 查询指定日期时间内sql语句实现原理与代码
Dec 16 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
Dec 14 PHP
Zend Framework框架实现类似Google搜索分页效果
Nov 25 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
IIS 7.5 asp Session超时时间设置方法
Apr 17 PHP
Laravel 5.2 文档 数据库 ―― 起步介绍
Oct 21 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
人族 Terran 魔法与科技
2020/03/14 星际争霸
PHP 数组排序方法总结 推荐收藏
2010/06/30 PHP
php标签云的实现代码
2012/10/10 PHP
php页面跳转代码 输入网址跳转到你定义的页面
2013/03/28 PHP
PHP 登录记住密码实现思路
2013/05/07 PHP
PHP判断是否有Get参数的方法
2014/05/05 PHP
php利用cookies实现购物车的方法
2014/12/10 PHP
PHP导入导出Excel代码
2015/07/07 PHP
php处理多图上传压缩代码功能
2018/06/13 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
自定义的一个简单时尚js下拉选择框
2013/11/20 Javascript
js实现简单的左右两边固定广告效果实例
2015/04/10 Javascript
跟我学习javascript的prototype使用注意事项
2015/11/17 Javascript
jquery遍历函数siblings()用法实例
2015/12/24 Javascript
JS实现留言板功能
2017/06/17 Javascript
AngularJS2 与 D3.js集成实现自定义可视化的方法
2017/12/01 Javascript
jQuery实现的简单对话框拖动功能示例
2018/06/05 jQuery
Vue项目中跨域问题解决方案
2018/06/05 Javascript
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
JavaScript实现拖动对话框效果的实现代码
2020/10/12 Javascript
[53:38]OG vs LGD 2018国际邀请赛淘汰赛BO3 第三场 8.26
2018/08/30 DOTA
[32:56]完美世界DOTA2联赛PWL S3 Rebirth vs CPG 第二场 12.11
2020/12/16 DOTA
python算法学习之计数排序实例
2013/12/18 Python
Python和php通信乱码问题解决方法
2014/04/15 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
python各类经纬度转换的实例代码
2019/08/08 Python
Python使用matplotlib实现交换式图形显示功能示例
2019/09/06 Python
Python的互斥锁与信号量详解
2019/09/12 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Python绘制动态水球图过程详解
2020/06/03 Python
英国家喻户晓的家居商店:The Range
2019/03/25 全球购物
医学专业自荐信
2014/06/14 职场文书
软件项目经理岗位职责
2015/04/01 职场文书
2016元旦晚会主持词
2015/07/01 职场文书
Vue+Element UI实现概要小弹窗的全过程
2021/05/30 Vue.js