php中execute的用法,写操作execute
原生SQL: 写操作(execute方法)
一、TP5原生写操作是通过Query类的execute()方法来实现
学习之前,先简单回顾了写操作常识:
数据表操作包括(增加、删除、修改、查询),即大家常说的:增删改,英文缩写:CURD。
操作语句主要有4个,他们的语法和说明:
序号
名称
关键字
语法
举例
1
新增
INSERT
INSERT 表名 (字段列表) VALUES (值列表)
INSERT staff (name,salary) VALUES ('周军',4500);
2
删除
DELETE
DELETE FROM 表名 WHERE 条件
DELETE FROM staff WHERE id = 1005;
3
更新
UPDATE
UPDATE 表名 SET 字段 = 新值 WHERE 条件
UPDATE staff SET salary = salary + 200 WHERE id = 1005;
4
查询
SELECT
SELECT 字段列表 FROM 表名 WHERE 条件
SELECT name,salary FROM staff WHERE id > 1005;
前三个是写操作(即执行后,表中记录发生了变化)
现在回到TP 5
execute()方法定义在:db/Query.php 类文件中
该方法功能是:执行写操作,参数有2个:
执行写操作的SQL语句字符串:$sql;
用数组方式绑定的参数:$bind。
2、Db类直接静态调用execute()方法
静态调用方式(大家先熟悉这种方式)
关于静态调用和SQL语句生成的的基本知识,我们在上一节读操作有详细介绍,这里不再重复。
实例1:在tp5_staff表中添加新员工
目前数据表tp5_staff记录如下:
Index.php 控制器代码如下:
namespace 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 '
您已成功的执行了该语句
';
}
}
运行结果如下:
为防止SQL注入,推荐用命名占位符传参方式构造SQL语句
经过改进后的Index.php控制器代码如下:
namespace 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 '
您已成功的执行了该语句
';
}
}
运行效果与第一方式完全一样,这里不再截图演示了。
下面语句全部采用:命名点位符绑定参数方式
实例2:删除tp5_staff表中id大于1012的记录
Index.php控制器代码如下:
namespace 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 '
您已成功的执行了该语句
';
}
}
运行效果如下:
实例3:更新id = 1012的记录,将姓名改为:楚云飞,部门改为市场部
Index.php 控制器类代码:
namespace 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 '
您已成功的执行了该语句
';
}
}
运行结果:
请同学们课后,将所有代码亲自上机调试,不要简单的复制粘贴。
php中execute的用法,写操作execute相关推荐
- oraclesqldeveloper 批量插入多个存储过程_MongoDB如何批量执行写操作
MongoDB Manual (Version 4.2)> MongoDB CRUD Operations > Bulk Write Operations No 1 总览 MongoDB使 ...
- matlab在axis,matlab中axis的用法
>> axis([0 2*pi -0.9 0.9]) 图 5.1.3 使用了图形修饰的 plot 函数绘制的正弦曲线 5.1.3 图形的比较显示 在一般默认的情况下,MATLAB 每次使用 ...
- python中cursor的用法_python MySQLdb用法,python中cursor操作数据库(转)
数据库连接 连接数据库前,请先确认以下事项: 您已经创建了数据库 TESTDB. 在TESTDB数据库中您已经创建了表 EMPLOYEE EMPLOYEE表字段为 FIRST_NAME, LAST_N ...
- ORACLE EXECUTE IMMEDIATE 用法
先转载过来看,再整理吧~~~ ORACLE EXECUTE IMMEDIATE 用法 EXECUTE IMMEDIATE 代替了以前Oracle8i中DBMS_SQL package包. 它解析并马上 ...
- conn.execute的用法
<script src="/a_dir_d/title_bottom.js"></script> http://tech.ddvip.com 2008年 ...
- EXECUTE IMMEDIATE用法小解
http://www.cnblogs.com/goodbye305/archive/2008/06/23/1228073.html EXECUTE IMMEDIATE 代替了以前Oracle8i中DB ...
- oracle execute immediate用法
参考:https://zhidao.baidu.com/question/119144004.html在ORACLE的PL/SQL里 EXECUTE IMMEDIATE 代替了以前Oracle8i中D ...
- 【pytest】概述pytest——setup、teardown方法和conftest中的fixture用法,来执行测试用例的前置/后置条件语句操作
大家好,我是好学的小师弟.今天和大家分享下-在pytest中的前置/后置操作. 所谓的前置/后置操作,就是在测试用例执行前,你预先要执行的一些步骤:在测试用例执行完毕后,你要执行的一些数据清理/备份工 ...
- mysql+影响的行数+获取_CI中获取读操作的结果集行数+获取写操作的影响行数
本质:读操作,用mysql_num_rows函数,写操作用mysql_affected_rows函数 mysql_num_rows() 返回结果集中行的数目.此命令仅对 SELECT 语句有效.要取得 ...
- jsp中用java写标签id_jsp中自定义标签用法实例分析
本文实例讲述了jsp中自定义标签用法.分享给大家供大家参考.具体如下: 这里简单的写了一个自定义标签,自己定义标签的好处就是在jsp页面中可以使用自己定义的功能,完全与Java代码分离 1. tld文 ...
最新文章
- python获取机器唯一标识_开发中常用工具 - 获取设备的唯一标识、UDID、UUID、keychain保存UUID、判断网络...
- TPU 3.0,Android P...Google带来了哪些惊喜?
- PAT Basic 1069. 微博转发抽奖(20)
- [转]Webkit内核探究【2】——Webkit CSS实现
- 【转】使用Apache CXF开发WebServices服务端
- 《实时控制软件开发》学生四次作业成绩总排名
- 【Alertmanager】腾讯企业邮箱配置
- SpringBoot项目的静态资源的访问及存放
- Thinkpad Access Connections实现快速的在各种网络间进行切换
- 解决idea中找不到程序包和找不到符号的问题
- IE FF css兼容
- Flowable入门系列文章187 - 高并发性的UUID ID生成器和多租户
- MYSQL 使用case when 完成对业务枚举的查询出参
- ultraISO方式制作win10安装U盘
- 夺命故障!炸出了投资人!
- 剑指offer--46.47.发散思维能力
- 【操作系统】—I/O设备的基本概念和分类
- 代码埋点、可视化埋点、无埋点几种数据埋点方案的分析报告
- http文件上传到web服务器,上传到ftp服务器
- cover letter and response letter
热门文章
- QT mindmap
- 1G、2G、3G、4G和5G有什么区别?5G的原理是什么?
- 植物墙,室内装饰的新创意
- SolidWork 制作KUKAKR6R700机器人URDF模型
- go每日新闻--2021-01-16
- 中台战略:企业数字化转型利器
- l2tp 账户管理系统
- android 解决usb网络共享,wifi热点能连不能用,手机wifi网络通过USB共享给电脑?
- java 百度网盘上传_[Java教程]使用pcs api往免费的百度网盘上传下载文件
- Egyptian Miracle Technical Service Support