CI框架的使用-原生SQL和ORM模式操作数据库、视图
一 数据库配置文件的配置和自动加载
1 直接修改config文件夹下面的database.php,把数据库相关信息填上去即可
$db['default'] = array('dsn' => '','hostname' => 'localhost','username' => 'root','password' => '123456','database' => 'tpstudy','dbdriver' => 'mysqli','dbprefix' => '','pconnect' => FALSE,'db_debug' => (ENVIRONMENT !== 'production'),'cache_on' => FALSE,'cachedir' => '','char_set' => 'utf8','dbcollat' => 'utf8_general_ci','swap_pre' => '','encrypt' => FALSE,'compress' => FALSE,'stricton' => FALSE,'failover' => array(),'save_queries' => TRUE
);
如果有多个数据库或数据源也可以配置多个,然后在load的时候配置参数就能访问到数据库了
2 自动加载database(可选)
找到config下面的autoload.php,在 $autoload['libraries'] = array(); 这个数组里写上'database',配置方面文件里也给出了一些例子,照着弄就OK了
二 原生SQL操作数据库
<?php
defined('BASEPATH') OR exit('No direct script access allowed');class User extends CI_Controller {public function showList(){$this->load->database();$query=$this->db->query("select * from tp_user order by id desc");$res=$query->result_array();$data["userList"]=$res;$this->load->view("user/list",$data);}public function mergeUser(){$this->load->database();$param=$this->input->get();$data[0]=$param['userName'];$data[1]=$param['id'];$sql="update tp_user set userName=? where id=?";$result=$this->db->query($sql,$data);if($result===False){echo "修改失败";}else{echo "受影响的行数".$this->db->affected_rows();}}}
?>
这种方式比较万能,复杂的查询或数据库操作可以选择这种方式,使用数据库或者返回视图都需要通过load方法,其中load数据库操作的时候可以使用自动加载,这样就不需要写很多次 $this->load->database();了
三 ORM模式操作数据库
<?php
defined('BASEPATH') OR exit('No direct script access allowed');class Dept extends CI_Controller {/***新增 */public function saveDept(){$data=array("name"=>"后勤部","orderByValue"=>0,"description"=>"暂无","pid"=>0);$this->load->database();$res=$this->db->insert("tp_dept",$data);if($res===False){echo "保存失败";}else{echo "保存成功";}}/*** 修改操作*/public function updateDept(){$data=array("name"=>"卫生部","orderByValue"=>0);$this->load->database();$res=$this->db->update("tp_dept",$data,array("id"=>9));if($res===False){echo "修改失败";}else{echo "修改成功";}}/*** 删除操作*/public function removeDept(){$this->load->database();$res=$this->db->delete("tp_dept",array("id"=>9));if($res===False){echo "删除失败";}else{echo "删除成功";}}/*** 查询操作*/public function queryDept(){$this->load->database();$res=$this->db->get("tp_dept")->result_array();echo "<pre>";var_dump($res);}public function otherQuery(){$this->load->database();$res=$this->db->select("id,name,pid")->from("tp_dept")->where(array("id >"=>5))//->where("id in",array(5,6,8,10))->order_by("id asc")->get()->result_array();echo "<pre>";var_dump($res);}
}?>
result_array()用于把数据转成数组的形式方便后期页面的遍历读取
四 页面展示
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>用户列表</title>
<link rel="stylesheet" href="https://cdn.staticfile.org/twitter-bootstrap/3.3.7/css/bootstrap.min.css">
</head>
<body>
<table class="table table-condensed"><caption>用户信息</caption><thead><tr><th>id</th><th>用户名</th><th>昵称</th><th>生日</th></tr></thead><tbody><?php foreach($userList as $u): ?><tr><td><?php echo $u['id'] ?></td><td><?php echo $u['userName'] ?></td><td><?php echo $u['nickName'] ?></td><td><?php echo $u['birthday'] ?></td></tr><?php endforeach;?></tbody>
</table>
</body>
</html>
和其他框架不同的是CI框架的页面展示默认不加载任何的模板引擎,还是最初的使用php代码直接在页面遍历或读取数据
CI框架的使用-原生SQL和ORM模式操作数据库、视图相关推荐
- thinkphp mysql 预处理_thinkPHP框架中执行原生SQL语句的方法
本文实例讲述了thinkPHP框架中执行原生SQL语句的方法.分享给大家供大家参考,具体如下: 怎样在thinkphp里面执行原生的sql语句? $Model = new Model();//或者 $ ...
- Sql Server 和 Access 操作数据库结构Sql语句
下面是Sql Server 和 Access 操作数据库结构的常用Sql,希望对你有所帮助. 新建表: create table [表名] ( [自动编号字段] int IDENTITY (1,1) ...
- php ci sql性能时间,Codeigniter操作数据库表的优化写法总结
用codeigniter也有一段时间了,一直没有做什么总结.现在总结一些Codeigniter操作数据库表的优化写法,虽说不全,但是也确实可以帮助那些刚刚上手CI的同学. 链接数据库 复制代码 代码如 ...
- mysql dede arctiny_如何用织梦SQL命令行工具操作数据库及常用sql语句整理
用织梦的朋友都知道,如果需要对数据库进行批量操作,可以用织梦后台[系统]-[sql命令行工具]实现.其实这只是织梦系统为了大家操作方便,提供的一个对mysql数据库操作的工具,这样大家在需要批量操作数 ...
- 【02】Java进阶:18-MySQL基础、数据库概述、数据库的安装/卸载/启动/登录、SQL概述、DDL操作数据库、DDL操作表、DML增删改查、
day18-MySql基础 今日内容 数据库概述 数据库安装和卸载 SQL语句 DDL-----操作数据库,操作表 DML-----操作记录(增删改) DQL------操作记录(查) 学习目标 能够 ...
- TP6中db操作数据库的方式(方法)和ORM模型操作数据库的方式(方法)
db库认知基础 注:orm独立出来了,与tp5不同 配置数据库: 通过env文件来具体配置,目的是不同的环境下,如线上服务器的配置只需要使用本环境的env文件就可以直接更改配置了 使用db: ① tp ...
- flask orm 数据库_Flask:使用ORM框架操作数据库
在Flask中并没有限制我们使用哪种方式来操作数据库,如果使用原生SQL的方式来操作数据库,随着项目代码量的提升会发现有大量操作数据库的冗余代码,以及大量SQL语句与逻辑代码杂糅在一起不利于核心代码的 ...
- Django 使用 ORM 操作数据库详解
ORM 是个啥? 在python中的一个默认的编写规范是一切皆对象,这样做使得代码简洁,结构清晰,便于维护和重用代码,同时极大的提升开发效率. 同样在操作数据库时,一般我们用SQL语句来实现操作,但是 ...
- orm mysql_PHP基于ORM方式操作MySQL数据库实例
本文实例讲述了PHP基于ORM方式操作MySQL数据库.分享给大家供大家参考,具体如下: ORM----Oriented Relationship Mapper,即用面向对象的方式来操作数据库.归根结 ...
最新文章
- R package XML安装
- MemCached java client 1.5.1 性能测试
- OpenCV HDF读写属性
- 如果你的名字,当然【随机】给你
- gradle中的增量构建
- poj1741 Tree 点分治
- linux-basic(11)认识和学习bash
- 002 exercises
- 2016去哪儿编程题:字符替换
- 博弈论与逻辑思维(传教士与妻子忠贞的问题)
- 第12章 决策树 学习笔记中
- linux内核percpu变量声明,Linux内核对per-cpu变量的实现
- 常见问题-瑞友天翼应用虚拟化系统安装之前需要做什么准备
- 计算机硬盘使用率,硬盘占用率和速度
- C#网络编程技术教程pdf 文档分享
- Ngnix服务器详解(Windows版本)(非原创)
- 使用WinRadius服务器软件 搭建 radius 认证
- 【云原生】AI云开发平台——AI Model Foundry介绍(开发者可免费体验AI训练模型)
- 迷你csgo饰品租赁系统
- 分形图(fractal pictures)
热门文章
- VC 操作excel
- 【一起学Rust | 设计模式】习惯语法——使用借用类型作为参数、格式化拼接字符串、构造函数
- Python 抽签随机排序小程序
- C语言--编程将递增数列10、20、30、40、50、60、70、80、90、100保存到数组中,再从键盘输入一个整数,插入到该数列中,使之成为一个递增数列。
- 初识html5-当当网图书分类页面,图书添加页面 图书分类加载不出来
- ORB_SLAM2 KITTI数据集测试
- Amcharts--Chart with scroller
- XLSX.js读取excel文件忽略第一行
- win7自带tftp服务器,Win7系统开启TFTP服务器的方法
- 谈谈对测试驱动开发思想的体会