`
wangemperor
  • 浏览: 40210 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

CodeIgniter笔记4

    博客分类:
  • php
 
阅读更多

 

自动连接数据库

在使用数据库之前,我们最好将数据库进行自动连接:config/autoload.php自动加载 $autoload['libraries'] = array('database');

 

一些常用函数

选择数据

$this->db->select();

允许你在SQL查询中写 SELECT 部分。

$this->db->where();

$this->db->or_where();

$this->db->where_in();

允许你在SQL查询中写 WHERE部分,其余各种where语句请看手册。

$this->db->get();

运行选择查询语句并且返回结果集。可以获取一个表的全部数据。

$this->db->like();

$this->db->or_like();

$this->db->not_like();

本函数允许你生成 LIKE 子句,在做查询时非常有用,其余语法请看手册。

$this->db->order_by();

帮助你设置一个 ORDER BY 子句。

$this->db->group_by();

允许你编写查询语句中的 GROUP BY 部分:

$this->db->distinct();

为查询语句添加 "DISTINCT" 关键字:

$this->db->having();

允许你为你的查询语句编写 HAVING 部分。

$this->db->limit();

限制查询所返回的结果数量:

 

$this->db->select_max();

为你的查询编写一个 "SELECT MAX(field)"

$this->db->select_min();

为你的查询编写一个 "SELECT MIN(field)" 

$this->db->select_avg();

为你的查询编写一个 "SELECT AVG(field)" 

$this->db->select_sum();

为你的查询编写一个 "SELECT SUM(field)" 

$this->db->join();

允许你编写查询中的JOIN部分。

 

$this->db->count_all_results();

允许你获得某个特定的Active Record查询所返回的结果数量。可以使用Active Record限制函数,例如 where(), or_where(), like(), or_like() 等等。

 

插入数据

$this->db->insert();

生成一条基于你所提供的数据的SQL插入字符串并执行查询。你可以向函数传递 数组 或一个 对象。

$this->db->insert_batch();

一次插入多条数据,生成一条基于你所提供的数据的SQL插入字符串并执行查询。你可以向函数传递 数组 或一个 对象。

$this->db->set();

本函数使您能够设置inserts(插入)updates(更新)值。它可以用来代替那种直接传递数组给插入和更新函数的方式。

 

更新数据

$this->db->update();

根据你提供的数据生成并执行一条update(更新)语句。你可以将一个数组或者对象传递给本函数。

$this->db->update_batch();

Generates an update string based on the data you supply, and runs the query. You can either pass an array or an object to the function. Here is an example using an array:

 

 

删除数据

$this->db->delete();

生成并执行一条DELETE(删除)语句。

$this->db->empty_table();

生成并执行一条DELETE(删除)语句。

$this->db->truncate();

生成并执行一条TRUNCATE(截断)语句。

 

链式方法

链式方法允许你以连接多个函数的方式简化你的语法。考虑一下这个范例:

$this->db->select('title')->from('mytable')->where('id', $id)->limit(10, 20);
$query = $this->db->get();

说明链式方法只能在PHP 5下面运行。

 

查询

$this->db->query();

要提交一个查询,用以下函数:

$this->db->query('YOUR QUERY HERE');

query() 函数以object(对象)的形式返回一个数据库结果集。 当使用 "read" 模式来运行查询时你可以使用显示你的结果集来显示查询结果当使用 "write" 模式来运行查询时将会仅根据执行的成功或失败来返回 TRUE 或 FALSE. 

 

转义查询

$this->db->escape()这个函数将会确定数据类型,以便仅对字符串类型数据进行转义。并且,它也会自动把数据用单引号括起来,所以你不必手动添加单引号,用法如下: 

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";

 

查询辅助函数

$this->db->insert_id()  

这个ID号是执行数据插入时的ID。 

$this->db->affected_rows()

当执行写入操作(insert,update等)的查询后,显示被影响的行数。

$this->db->count_all();

计算出指定表的总行数并返回。在第一个参数中写入被提交的表名。

生成查询记录集

result()

该方法执行成功返回一个object 数组,失败则返回一个空数组。

result_array()

该方法执行成功时将记录集作为关联数组返回。失败时返回空数组。

row()

该函数将当前请求的第一行数据作为 object 返回。

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 行的数据: $row = $query->row(4);

row_array()

功能与 row() 一样区别在于该函数返回的是一个数组

 

除此以外我们还可以使用下面的方法通过游标的方式获取记录:

$row = $query->first_row()
$row = $query->last_row()
$row = $query->next_row()
$row = $query->previous_row()

默认情况下他们将返回一个 object,同时你也可以传递参数 "array" 以便使用 array 的方式获取数据

$row = $query->first_row('array')
$row = $query->last_row('array')
$row = $query->next_row('array')
$row = $query->previous_row('array')

 

结果集辅助函数

$query->num_rows()

该函数将会返回当前请求的行数。

$query->num_fields()

该函数返回当前请求的字段数(列数):

$query->free_result()

该函数将会释放当前查询所占用的内存并删除其关联的资源标识。

 

自动连接

自动连接” 功能将在每个一页面加载时被自动实例化数据库类。要启用自动连接,可在application/config/autoload.php中的 library 数组里添加 database

$autoload['libraries'] = array('database');

手动连接

如果仅仅是一部分页面要求数据库连接,你可以在你有需要的函数里手工添加如下代码或者在你的类里手工添加以供该类使用。

$this->load->database();

连接多数据库

如果你需要同时连接多于一个的数据库,你可以用以下方式来实现:

$DB1 = $this->load->database('group_one', TRUE);
$DB2 = $this->load->database('group_two', TRUE);

 

表数据

$this->db->list_tables();

返回一个包含当前连接数据库中所有表名称的数组。

$this->db->table_exists();

有时,在对某个表执行操作之前,使用该函数判断指定表是否存在很有用。返回一个布尔值

 

数据库工具类

重要提示:  初始化数据库工具类之前,你的数据库驱动必须已经运行,因为工具类依赖于此。

加载工具类: $this->load->dbutil()

一旦初始化完毕,你可以通过 $this->dbutil 对象来访问成员函数:

 

$this->dbutil->list_databases()

$this->dbutil->database_exists();

$this->dbutil->xml_from_result($db_result)

$this->dbutil->backup()

 

数据库缓存类

激活缓存需要三步:

1在服务器上创建一个可写的目录以便保存缓存文件。

2在文件 application/config/database.php $db['xxxx']['cachedir']设置其目录。

3激活缓存特性,可以在文件 application/config/database.php 中设置全局选项$db['xxxx']['cache_on']='TRUE',也可以用以本页下面的方法手动设置。

一旦被激活,每一次含有数据库查询的页面被加载时缓存就会自动发生。

 

 

 

当有数据库更新,我们需要删除缓存文件

$this->db->cache_delete()

删除缓存文件与特定网页。如果你需要清除缓存后,更新您的数据库

$this->db->cache_delete('/blog', 'comments');

注意,手册上写的是 $this->db->cache_delete('blog', 'comments');但根据实际测试应该在控制器名字前加斜杠'/'才能正确执行。

$this->db->cache_delete_all()

清除所有所有的缓存文件。

 

数据库维护类

注意:  欲初始化数据库维护类,请确保你的数据库驱动已经运行,因为该类依赖于数据库驱动。

使用如下方法载入数据库维护类:

$this->load->dbforge()

一旦初始化,就可以使用$this->dbforge 对象访问类中函数:

 

$this->dbforge->create_database('db_name')

允许你创建由第一个参数指定的数据库。

$this->dbforge->drop_database('db_name')

允许你删除由第一个参数指定的数据库。

$this->dbforge->create_table('table_name');
声明了字段和键之后,你就可以创建一个表

分享到:
评论

相关推荐

    Codeigniter 4.0-dev 版源码学习笔记之四——详细路由过程

    我个人觉得在当前 MVC 流行的架构下,要想去了解一个框架,或者是一个基于此架构下的应用程序,最好的入手方式就是先看路由,虽然路由不是 MVC 里的任何一...如此,我们接下来详细看看 CI 4 dev 版的路由具体实现的逻辑

    Codeigniter 4.0-dev 版源码学习笔记之六——控制器

    其实一开始我是很纠结是否要写控制器的源码分析的,因为控制器的源码太少了,少到你不相信这是一个 MVC 里的一个重头。直觉里,大家都觉得控制器作为各个请求的“入口”,其后端应该有很多很多的代码支撑才可以的,...

    Codeigniter 4.0-dev 版源码学习笔记之二

    CodeIgniter 4.0-dev版本是CodeIgniter系列的一个开发者预览版本,虽然还没有正式发布,但通过学习其源码,我们可以深入了解框架的设计和实现细节,这对于提升PHP开发者的编程水平和框架使用效率是大有裨益的。...

    笔记_CodeIgniter(部分).pdf

    笔记扫描版本

    starter-public-edition-5:一个基于CodeIgniter 4PHP应用程序启动器

    一个基于CodeIgniter 4PHP Application Starter,版本5项目资料库笔记该启动器支持多个应用程序。 在尝试运行此启动程序之前,请使用您的特定设置创建自己的.env文件。PHP 如果您是初学者,几乎没有PHP经验,或者您...

    Codeigniter 4.0-dev 版源码学习笔记之三

    Codeigniter.php 是 CI 4 的核心所在,在这里接收并处理了 request 请求,安全检查,缓存处理, URL 解析以及路由匹配,执行过滤器,加载运行 Controller ,组装 repsonse 响应并发送等。

    php之CodeIgniter学习笔记

    本文将详细介绍CodeIgniter框架中关于数据库操作的一些常用函数和特性。 数据库自动连接是使用CodeIgniter框架进行数据库操作的第一步。在CodeIgniter中,你可以通过修改配置文件`application/config/autoload.php`...

    ttd.zip_codeigniter_html

    4. `images`:这个目录通常包含网站使用的图像资源,如logo、图标、背景图片等。 5. `license.txt`:项目许可文件,描述了该项目的授权协议,规定了如何使用、分发和修改项目代码的规则。 6. `assets`:这个目录...

    PHP框架codeigniter留言板实例

    除了视频教程,提供的www.StudyIM.com【雪狐网】.txt文件可能包含与课程相关的笔记或补充资料,对理解和实践这个CodeIgniter留言板实例会有很大帮助。 总的来说,这个实例涵盖了CodeIgniter的基本使用,MVC模式的...

    codeigniter-migration:Codeigniter 3迁移

    Codeigniter 3迁移示例 迁移是一种在多个开发环境中管理...笔记 001_add_users.php:为了快速开发,您可以从phpmyadmin或sqlyog等生成sql代码 002_add_contact.php:这是面向框架的方式,并且肯定会花费一些时间。

    Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化

    CI 为了追上“大家”的脚步,这次跨了一大步,尽量使用了更多的流行设计理念,甚至连 PHP 的支持版本都是从 7 开始起步的。我在之前阅读源码的同时也发现了很多变化的地方,在此把已经发现的列举出来,不过肯定是不...

    韩顺平PHP从入门到精通笔记.zip

    2. PHP框架:探讨常见的PHP框架,如Laravel、Symfony、CodeIgniter等,理解框架的原理和优势。 3. RESTful API设计:学习如何使用PHP构建符合RESTful原则的Web服务接口。 4. PHP安全:探讨防止SQL注入、XSS攻击、...

    starter-public-edition-3:一个基于CodeIgniter 3PHP应用程序启动器

    基于CodeIgniterPHP应用程序入门版本3项目资料库笔记这是平台的较旧版本。 将在支持多个应用程序的Application Starter 4上做进一步的努力。 参见PHP 如果您是初学者,几乎没有PHP经验,或者您没有PHP经验,则可能...

    portal-news:使用 Codeigniter 3 构建的门户新闻项目

    规格: 代码点火器 v3 引导程序 4 Jquery 数据表Ion Auth Codeigniter Sweetalert2 夏日笔记步骤配置: 创建名为 db_blog 的数据库将文件夹数据库中的文件导入到 phpmyadmin 完毕如何以管理员身份登录: 使用“/...

    燕十八PHP培训笔记

    7. **Web框架和库**:可能涉及一些流行的PHP框架,如Laravel、Symfony或CodeIgniter,以及使用PHPMailer发送邮件等实用库。 此外,笔记可能还会涵盖Web服务器配置、PHP配置、安全实践、性能优化等进阶话题。通过...

    aad-sso-codeigniter:使用Azure Active Directory对CodeIgniter站点进行身份验证

    aad-sso-codeigniter 使用... 笔记: 该库使用CodeIgniter的。 这意味着必须配置该库以供使用。 (例如,如果使用,则必须设置目录。) 重要说明:这是一项正在进行的工作。 您不应将其用于任何生产站点或敏感信息。

    todo:这是一个管理待办事项列表和笔记的简单项目。 这是我在学习 codeigniter 时创建的

    这是我在学习 codeigniter 时创建的。 要运行此应用程序,您需要做的是: 创建一个名为:jrdash 的数据库 使用此处包含的文件 jrdash.sql 将表导入到上面创建的数据库中 根据你的配置编辑 jrdash\application\...

Global site tag (gtag.js) - Google Analytics