为什么80%的码农都做不了架构师?>>>   

在 CodeIgniter 中,使用数据库是非常频繁的事情。你可以使用框架自带的数据库类,就能便捷地进行数据库操作。

初始化数据库类

依据你的数据库配置载入并初始化数据库类:

$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();

快捷插入方式:

$data = array('title' => $title,'name' => $name,'date' => $date);$this->db->insert('mytable', $data); // Produces: INSERT INTO mytable (title, name, date) VALUES ('{$title}', '{$name}', '{$date}')

数据库配置

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";

那么,告诉系统使用"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 驱动程序. 要使用这个值,你应该添加一行代码到数据库配置数组。

记录一下,方便查阅。

转载于:https://my.oschina.net/sunYwp/blog/791948

CodeIgniter自带的数据库类使用介绍相关推荐

  1. 12 带音视频、多媒体、2D3D显示加速的嵌入式类芯片介绍

    带音视频.多媒体.2D3D显示加速的嵌入式类芯片介绍 作者 将狼才鲸 创建日期 2022-04-11 带硬件音视频编解码模块的芯片有两类: 一是不包含GPU(支持OpenGL ES.Open VG等协 ...

  2. 手把手使用Android自带SQLite数据库(1)—— 建立核心文件

    SQLite是一个软件库,实现了自给自足的.无服务器的.零配置的.事务性的 SQL 数据库引擎.详细介绍参见https://www.runoob.com/sqlite/sqlite-intro.htm ...

  3. GaussDB数据库基础函数介绍-上

    目录 一.函数在数据库中的作用 二.GaussDB常用基础函数介绍与示例 1.数字操作函数 2.时间和日期处理函数 3.类型转换函数 4.数组函数 5.范围函数 6.窗口函数 7.聚集函数 8.安全函 ...

  4. ResultSetMetaData类的介绍

    ResultSetMetaData类的介绍 利用ResultSet的getMetaData的方法可以获得ResultSetMeta对象,而ResultSetMetaData存储了 ResultSet的 ...

  5. Hummer TimeSeries DB (蜂鸟时序数据库)技术介绍

    转载自:http://blog.csdn.net/kanghua/article/details/44650831 Hummer TimeSeries DB (蜂鸟时序数据库)技术介绍 1. 背景介绍 ...

  6. 一个好用的ODBC数据库类CMYODBC

    一个好用的ODBC数据库类CMYODBC 一.引言 感觉MFC的CRecordset类不是很好用,因为我们要想使用的话必须为每个查询从CRecordset类派生出一个新类,或者进行动态数据交换.在VC ...

  7. Dedesql数据库类详解(二次开发必备教程)(转)

    http://www.dedecms.com/help/development/2009/1028/1076.html 织梦DedeCMS的二次开发不仅仅是会写写织梦的标签,会制作织梦的模板.很多时候 ...

  8. MySQL系统自带的数据库information schema

    转自:https://www.cnblogs.com/shengdimaya/p/6920677.html#commentform information_schema数据库是MySQL系统自带的数据 ...

  9. mysql系统自带示例数据库_MySQL系统自带的数据库information schema

    information_schema数据库是MySQL系统自带的数据库,它提供了数据库元数据的访问方式.感觉information_schema就像是MySQL实例的一个百科全书,记录了数据库当中大部 ...

最新文章

  1. 知乎宣布完成4.34亿美元F轮融资,快手领投,融资额刷新此前记录
  2. windows 下实现函数打桩:拦截API方式
  3. python做后端速度慢吗_【后端开发】python为什么慢?
  4. [转]GridView 72般绝技
  5. 解决$router.go(-1)返回上一层页面不刷新页面问题
  6. java exception用法_Java基础回顾_Exception异常使用详解
  7. 宠物也能买保险了!鼻纹识别就能建立专属电子档案
  8. 自学python书籍怎么选-自学Python可以选择哪些入门书籍?
  9. python 中 chardet 的使用
  10. 霍尼韦尔扫描枪设置手动方法
  11. 两台计算机互联方案,如何连接两台电脑
  12. linux系统下使用润乾报表设计器
  13. ucenter安装指南及问题解决
  14. vivo手机计算机怎么开语音,vivo怎么打开语音助手
  15. 黄天不负有心人,拥有属于自己的LOGO
  16. compiz的ubuntu10.04安装
  17. docker学习至docker-compose
  18. VS2015+QT运行C# dll,出现“错误C2182 “t”: 非法使用“void”类型”的解决方案
  19. 12月第3周网络安全报告:发现放马站点域名131个
  20. 计算机系新年寄语,经典新年寄语(精选50句)

热门文章

  1. 维护人员的VMware日常工作
  2. CentOS防火墙配置方法-详细解读如何配置CentOS防火墙
  3. 活动目录管理之五种常见错误操作
  4. message/maillog日志提示磁盘innode、io错误等,扫描磁盘很多坏道
  5. #113. 【UER #2】手机的生产
  6. 《HttpClient官方文档》2.4 多线程请求执行
  7. 《智能路由器开发指南》——1.1 OpenWrt简介
  8. CrazePony飞行器--通信部分介绍【转】
  9. 《你的灯亮着吗》读书笔记3
  10. Ghost XP基本介绍