php的CI框架相关数据库操作
在使用之前首先应该配置数据库的参数,详见文件application/config/database.php,里面包含主机名,登陆用户名,登录密码,数据库名,编码信息等。 在配置成功后,可以简单的调用:$this->load->database();进行数据库链接。 然后可以使用$this->db->query(),$this->db->insert()等方法对数据库进行相应sql操作,例如下面给出的包含CI框架封装查询特性的相关语句:
$sql = "SELECT * FROM some_table WHERE id = ? AND status = ? AND author = ?"; $this->db->query($sql, array(3, 'live', 'Rick'));
上面语句先定义好sql操作,然后进行查询,这里包含的所谓“封装查询”是指,在sql语句中一些参量先不定义,用?替代,然后再调用query方法时在第二参数array中添加依次对应的参量。
query() 函数以object(对象)的形式返回一个数据库结果集. 当使用 "read" 模式来运行查询时, 你可以使用“显示你的结果集”来显示查询结果; 当使用 "write" 模式来运行查询时, 将会仅根据执行的成功或失败来返回 TRUE 或 FALSE. 当你需要将返回的结果赋值给一个自定义变量的时候, 你可以这样操作:
$query = $this->db->query('YOUR QUERY HERE');
然后可以使用 $query->result(),$query->row()等方法取得查询的结果。详见CI手册。
下面举一个项目中遇到的例子:
$sql = "update al set tadl_CorrectState = 0 , tadl_noPunchCardResult= ''
from t_ttm_vacationinfo vi
inner join T_Employee te on te.EmpUID = vi.vi_empuid
inner join workAttendance.dbo.t_Attendance_log al on al.tadl_salarysn = te.SalarySN
and CAST(al.tadl_date as DATE) between CAST(vi.vi_startdate as DATE) and CAST(vi.vi_enddate as DATE)
where vi.vi_uid = ? ";
$status3 = $this->db->query( $sql , array( $et_uid ) );
里面本质与上面简单例子一致,只是包含了更多的sql语句的特性,(数据库为sql server) 举例如下:
1. 别名。sql提供别名的特性,许多时候我们给表起名字的时候由于要良好的区分表以及彰显表的内容一般会起的比较复杂,例如上面这句sql中的 t_ttm_vacationinfo可想而知代表的是请假相关的信息,但由于名字较长,如果在sal语句中一直使用本名,会导致sql冗长,所以有了上面的“ t_ttm_vacationinfo vi”,意思即为别名。
2.联结。sql提供连接操作,包括inner join, left join, right join 其中inner join表示两个表需要至少包含一个匹配才可以返回相关行。如上例中采用了三个表之间进行联结,联结时用“on”关键字,声明了应该具有的匹配字段。
3. CAST函数。CAST()用于将某种数据类型的表达式显式转换为另一种数据类型。如上例中转换成日期格式的。
php的CI框架相关数据库操作的更多相关文章
- 十九、CI框架之数据库操作delete用法
一.代码如下: 二.执行f访问 三.查看数据库,已经id=15的数据已经被删掉了 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦, ...
- 十八、CI框架之数据库操作update用法
一.代码如图: 二.访问一下 三.我们来查看数据库,已经被修改了 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.
- 十七、CI框架之数据库操作insert用法
一.代码如下: 二.我们访问一下页面 三.查看数据库,已经插入了一条数据 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦,谢谢.
- 十六、CI框架之数据库操作get用法
一.使用数据库的Get方法读取内容,如下代码: 二.数据库如下: 二.效果如下: 不忘初心,如果您认为这篇文章有价值,认同作者的付出,可以微信二维码打赏任意金额给作者(微信号:382477247)哦, ...
- CI中的数据库操作以及AR连贯操作
要使用CI中的数据库操作,首先我们应该在CI的 application/config/databass.php 文件中配置数据库信息,通常就是配置主机名,用户名,密码,数据库名,表前缀(dbprefi ...
- java之Hibernate框架实现数据库操作
之前我们用一个java类连接MySQL数据库实现了数据库的增删改查操作---------MySQL篇: 但是数据库种类之多,除了MySQL,还有Access.Oracle.DB2等等,而且每种数据库语 ...
- ThinkPhp框架的数据库操作(查询)
TP框架有一套自己的数据库操作的代码,包括数据库的增.删.改.查.本文主要讲解TP框架的数据库查询操作. 找到入口文件的控制器: 我这里的入口文件是Show文件夹下的控制器. 打开Login控制器. ...
- Oracle相关数据库操作
1.进入oracle后台操作 su - oracle 2.数据库备份的指定位置 Oracle用sys用户登录查询数据库 select * from dba_directories a where a. ...
- 018.CI4框架CodeIgniter数据库操作之:Delete删除一条数据
01. 在Model中写数据库操作语句,代码如下: <?php namespace App\Models\System; use CodeIgniter\Model; class User_mo ...
随机推荐
- windows平台使用 pthreads库
note 近日封装一些跨平台库时, 发现线程的创建需要做平台的区分, windows的线程创建和Linux下的线程操作不一样.很麻烦,还要做平台区分. 能否在windows上使用pthread的线程库 ...
- 【LeetCode】475. Heaters 解题报告(Python & C++)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 遍历 日期 题目地址:https://leetcod ...
- 【LeetCode】872. Leaf-Similar Trees 解题报告(Python)
作者: 负雪明烛 id: fuxuemingzhu 个人博客: http://fuxuemingzhu.cn/ 目录 题目描述 题目大意 解题方法 中序遍历 先序遍历 后序遍历 日期 题目地址:htt ...
- codeforce 597C-Subsequences(dp+树状数组)
题目和南阳那道题一样链接http://www.cnblogs.com/zzuli2sjy/p/4943774.html 代码: 1 #include<stdio.h> 2 #include ...
- Kronecker Products and Stack Operator
目录 定义 Stack Operator Kronecker Product 性质 Stack Operator Kronecker Product 半线性 Whitcomb L. Notes on ...
- ON LARGE BATCH TRAINING FOR DEEP LEARNING: GENERALIZATION GAP AND SHARP MINIMA
目录 概 主要内容 一些解决办法 Keskar N S, Mudigere D, Nocedal J, et al. On Large-Batch Training for Deep Learning ...
- [Guide]Google C++ Style Guide
0.0 扉页 项目主页 Google Style Guide Google 开源项目风格指南 -中文版 0.1 译者前言 Google 经常会发布一些开源项目, 意味着会接受来自其他代码贡献者的代码. ...
- Java Web项目 慧心人力资源管理系统
题目:慧心人力资源管理系统 文档下载:https://download.csdn.net/download/weixin_44893902/16336711 完整项目下载:https://downlo ...
- linux 下安装minconda3
一.关于bashrc目录,此文件是隐藏的,如果要打开此文件需要用: vim /root/.bashrc 二.linux下关于防火墙的命令 1.查看防火墙状态 firewall-cmd --state ...
- 不用find,怎样递归地给目录设置700,给文件设置600权限?
https://stackoverflow.com/questions/36553701/how-to-set-permissions-recursively-700-for-folders-and- ...