tp5 原生SQL: 写操作(execute方法)
来源:互联网 发布:开放源代码的软件 编辑:程序博客网 时间:2024/06/05 15:54
一、TP5原生写操作是通过Query类的execute()方法来实现
学习之前,先简单回顾了写操作常识:
- 数据表操作包括(增加、删除、修改、查询),即大家常说的:增删改,英文缩写:CURD。
- 操作语句主要有4个,他们的语法和说明:
前三个是写操作(即执行后,表中记录发生了变化)
现在回到TP 5
- execute()方法定义在:db/Query.php 类文件中
- 该方法功能是:执行写操作,参数有2个:
- 执行写操作的SQL语句字符串:$sql;
- 用数组方式绑定的参数:$bind。
2、Db类直接静态调用execute()方法
- 静态调用方式(大家先熟悉这种方式)
关于静态调用和SQL语句生成的的基本知识,我们在上一节读操作有详细介绍,这里不再重复。
实例1:在tp5_staff表中添加新员工
- 目前数据表tp5_staff记录如下:
- Index.php 控制器代码如下:
<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller { public function index(){ //创建SQL语句字符串 $sql = "INSERT tp5_staff (name,sex,age,salary,dept,hiredate) VALUES ('李云龙',1,39,4800,'开发部','2011-09-12');"; //执行插入操作 $affected = Db::execute($sql); //判断是否执行成功 if ($affected){ $this->success('插入成功!',url('ok')); }else{ $this->error('插入失败'); } } //定义操作成功的方法 public function ok(){ echo '<h2>您已成功的执行了该语句</h2>'; }}
- 运行结果如下:
为防止SQL注入,推荐用命名占位符传参方式构造SQL语句
- 经过改进后的Index.php控制器代码如下:
<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller { public function index(){ //创建SQL语句字符串 $sql = "INSERT tp5_staff (name,sex,age,salary,dept,hiredate) VALUES (:name,:sex,:age,:salary,:dept,:hiredate);"; //执行插入操作 $affected = Db::execute($sql,['name'=>'李云龙','sex'=>1,'age'=>30,'salary'=>4800,'dept'=>'开发部','hiredate'=>'2011-09-12']); //判断是否执行成功 if ($affected){ $this->success('插入成功!',url('ok'),10); }else{ $this->error('插入失败'); } } //定义操作成功的方法 public function ok(){ echo '<h2>您已成功的执行了该语句</h2>'; }}
- 运行效果与第一方式完全一样,这里不再截图演示了。
下面语句全部采用:命名点位符绑定参数方式
实例2:删除tp5_staff表中id大于1012的记录
- Index.php控制器代码如下:
<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller { public function index(){ //创建SQL语句字符串 $sql = "DELETE FROM tp5_staff WHERE id > :id;"; //执行插入操作 $affected = Db::execute($sql,['id'=>'1012']); //判断是否执行成功 if ($affected){ //延时10秒,是为了方便截图,默认为3秒 $this->success('删除成功!',url('ok'),'',10); }else{ $this->error('删除失败'); } } //定义操作成功的方法 public function ok(){ echo '<h2>您已成功的执行了该语句</h2>'; }}
- 运行效果如下:
实例3:更新id = 1012的记录,将姓名改为:楚云飞,部门改为市场部
- Index.php 控制器类代码:
<?phpnamespace app\index\controller;use think\Controller;use think\Db;class Index extends Controller { public function index(){ //创建SQL语句字符串 $sql = "UPDATE tp5_staff SET name = :name , dept = :dept WHERE id = :id;"; //执行插入操作 $affected = Db::execute($sql,['name'=>'楚云飞','dept'=>'市场部','id'=>'1012']); //判断是否执行成功 if ($affected){ $this->success('更新成功!',url('ok'),'',10); }else{ $this->error('更新失败'); } } //定义操作成功的方法 public function ok(){ echo '<h2>您已成功的执行了该语句</h2>'; }}
- 运行结果:
引用:https://www.kancloud.cn/ldkt/tp5_db/226599
阅读全文
0 0
- tp5 原生SQL: 写操作(execute方法)
- tp5中使用原生sql查询总结
- tp5中使用原生sql语句
- hibernate写原生sql
- PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE 方法的区别
- PL/SQL中直接写SQL语句和利用EXECUTE IMMEDIATE方法的区别
- PL/SQL中直接写SQL语句和用EXECUTE IMMEDIATE方法的区别
- 使用原生sql写python
- java原生sql操作数据库
- Laravel学习笔记(四)---操作数据库--原生SQL语句
- 关于SpringBoot使用JPA的更新操作(save方法和原生SQL方法)
- 安卓学习-(数据存储(数据库,原生sql,和原生安卓操作))
- hibernate执行原生Sql语句的方法(转)
- Hibernate 的SQLQuery接口addScalar方法 (原生sql查询)
- JavaScript原生方法写瀑布流
- 原生JS方法写三级联动
- TP5 更新操作
- TP5.0数据库操作
- 摘录 线程安全总结
- JAVA Serializable 实例
- java自学笔记12:java中的集合框架(下)List
- Spring RestTemplate
- 动态规划问题和贪心算法
- tp5 原生SQL: 写操作(execute方法)
- js原型与原型链
- 1049. 数列的片段和(20) PAT乙级真题
- 移动互联网产品数据分析
- 嵌入式裸机开发,全局变量初值不正确
- 第15周项目1(3)-验证冒泡排序算法
- TCP/IP协议:最大传输单元MTU 和 最大分节大小MSS
- docker insecure-registry
- 利用xgboost4j下的xgboost分类模型案例