CodeIgniter笔记4

2024-02-14 13:38
文章标签 笔记 codeigniter

本文主要是介绍CodeIgniter笔记4,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

自动连接数据库

在使用数据库之前,我们最好将数据库进行自动连接: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 返回。

你可以传递参数(参数是行的索引)以便获得某一行的数据。比如我们要获得第 5 行的数据: $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的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/708644

相关文章

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓

忽略某些文件 —— Git 学习笔记 05

忽略某些文件 忽略某些文件 通过.gitignore文件其他规则源如何选择规则源参考资料 对于某些文件,我们不希望把它们纳入 Git 的管理,也不希望它们总出现在未跟踪文件列表。通常它们都是些自动生成的文件,比如日志文件、编译过程中创建的临时文件等。 通过.gitignore文件 假设我们要忽略 lib.a 文件,那我们可以在 lib.a 所在目录下创建一个名为 .gi

取得 Git 仓库 —— Git 学习笔记 04

取得 Git 仓库 —— Git 学习笔记 04 我认为, Git 的学习分为两大块:一是工作区、索引、本地版本库之间的交互;二是本地版本库和远程版本库之间的交互。第一块是基础,第二块是难点。 下面,我们就围绕着第一部分内容来学习,先不考虑远程仓库,只考虑本地仓库。 怎样取得项目的 Git 仓库? 有两种取得 Git 项目仓库的方法。第一种是在本地创建一个新的仓库,第二种是把其他地方的某个

Git 的特点—— Git 学习笔记 02

文章目录 Git 简史Git 的特点直接记录快照,而非差异比较近乎所有操作都是本地执行保证完整性一般只添加数据 参考资料 Git 简史 众所周知,Linux 内核开源项目有着为数众多的参与者。这么多人在世界各地为 Linux 编写代码,那Linux 的代码是如何管理的呢?事实是在 2002 年以前,世界各地的开发者把源代码通过 diff 的方式发给 Linus,然后由 Linus