PDO预处理

简介:

方法:bool PDOStatement::execute ([ array $input_parameters ] )
1、PDOStatement::execute不使用参数

01)单个绑定值(PDOStatement::bindValue)
//预处理:?号占位符,绑定值,单个值
//使用1,2等数字绑定值
//注意对应关系,例如 name->?(第一个?号)->1
//适用于字段较少的情况
$stmt=$m->prepare("insert into stu(name,age,sex,classid)values(?,?,?,?)");
$stmt->bindValue(1,'caiyu22');
$stmt->bindValue(2,22);
$stmt->bindValue(3,1);
$stmt->bindValue(4,'lamp87');
$stmt->execute();

$stmt->bindValue(1,'caiyu23');
$stmt->bindValue(2,22);
$stmt->bindValue(3,1);
$stmt->bindValue(4,'lamp87');
$stmt->execute();

//或者
$param = array('caiyu', 22, 1, 'lamp88');
foreach($param as $k=> $v){
  $this->bindValue(($k+1), $v);
}
$this->execute();

//预处理:用:号占位符,绑定值,单个值
//使用单引号形式为准备语句里的占位符绑定值 
//注意对应关系,例如 name->:name->'name'
//适用于字段较多的情况
$stmt=$m->prepare("insert into stu(name,age,sex,classid)values(:name,:age,:sex,:classid)");
$stmt->bindValue(':name','caiyu24');
$stmt->bindValue(':age',22);
$stmt->bindValue(':sex',1);
$stmt->bindValue(':classid','lamp87');
$stmt->execute();

 

02)使用批量添加方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//预处理:?号占位符,绑定参数,多个值
$stmt = $m ->prepare( "insert into stu(name,age,sex,classid)values(?,?,?,?)" );
$stmt ->bindParam(1, $name );
$stmt ->bindParam(2, $age );
$stmt ->bindParam(3, $sex );
$stmt ->bindParam(4, $classid );
$data = array (
array ( 'yjc05' ,22,1, 'lamp' ),
array ( 'yjc06' ,22,1, 'lamp' ),
array ( 'yjc07' ,22,1, 'lamp' ),
);
//foreach相当于循环多次
foreach ( $data as $v ){
list( $name , $age , $sex , $classid )= $v ;
$stmt ->execute();
echo "操作成功!" ;
}


 =========================

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
//预处理: 用:占位符,绑定参数,多个值
$stmt = $m ->prepare( "insert into stu(name,age,sex,classid)values(:name,:age,:sex,:classid)" );
$stmt ->bindParam( ':name' , $name ); //用:占位符时绑定参数使用引号
$stmt ->bindParam( ':age' , $age );
$stmt ->bindParam( ':sex' , $sex );
$stmt ->bindParam( ':classid' , $classid );
$data = array (
array ( 'yjc08' ,22,1, 'lamp' ),
array ( 'yjc09' ,22,1, 'lamp' ),
array ( 'yjc10' ,22,1, 'lamp' ),
);
//foreach相当于循环多次
foreach ( $data as $v ){
list( $name , $age , $sex , $classid )= $v ;
$stmt ->execute();
echo "操作成功!" ;
}

  

2、PDOStatement::execute使用参数(数组)


无需手动绑定

01)使用:占位符

1
2
3
4
5
6
7
8
9
10
11
12
13
//预处理: 用:占位符,多个值
$stmt = $m ->prepare( "insert into stu(name,age,sex,classid)values(:name,:age,:sex,:classid)" );
 
$data = array (
array ( 'name' => 'yjc11' , 'age' =>22, 'sex' =>1, 'classid' => 'lamp' ),
array ( 'name' => 'yjc12' , 'age' =>22, 'sex' =>1, 'classid' => 'lamp' ),
array ( 'name' => 'yjc13' , 'age' =>22, 'sex' =>1, 'classid' => 'lamp' ),
);
//foreach相当于循环多次
foreach ( $data as $v ){
$stmt ->execute( $v );
echo "操作成功!" ;
}


02)使用?占位符

1
2
3
4
5
6
7
8
9
10
11
12
13
//预处理: 用?占位符,多个值
$stmt = $m ->prepare( "insert into stu(name,age,sex,classid)values(?,?,?,?)" );
 
$data = array (
array ( 'yjc14' ,22,1, 'lamp' ),
array ( 'yjc15' ,22,1, 'lamp' ),
array ( 'yjc16' ,22,1, 'lamp' ),
);
//foreach相当于循环多次
foreach ( $data as $v ){
$stmt ->execute( $v );
echo "操作成功!" ;
}

  


目录
相关文章
|
Linux
CentOS7.X磁盘挂载及取消挂载
CentOS7.X磁盘挂载及取消挂载
8105 0
|
Web App开发 NoSQL Cloud Native
MongoDB中间件工具mgm入门介绍(一)
MongoDB 数据库确实好用,但是也要依托一定的生态环境,其中就包括我们在开发过程中经常会用到的工具集。在连接 MongoDB 时,我们不可能自己单独去开发基础的功能接口,比如添加记录、删除记录、更新记录等。我们可以使用非常好用的第三方中间件来完成这样的工作,避免重复造轮子,毕竟自己造的轮子还不一定好使。今天我们就来介绍一个非常优秀的 MongoDB 数据库中间件 —— mgm 。
886 93
|
Windows
Windows删除文件时如何取消显示“确认是否删除”的弹窗
本文介绍Windows电脑删除文件时,开启或取消显示确认删除这一提示弹窗的方法~
924 1
Windows删除文件时如何取消显示“确认是否删除”的弹窗
|
存储 算法 C++
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
在上面我们通过通俗易懂的例子对动态规划法进行了理解,也用该方法的核心对斐波那契数列进行了优化。动态规划是分治法的一个延伸,它增加了记忆机制的使用,将处理过的子问题的答案记录下来,从而避免去重复计算。
754 0
详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++
|
Web App开发 资源调度 算法
【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)
【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)
【机组组合】基于Benders分解算法解决混合整数规划问题——机组组合问题(Matlab代码实现)
|
SQL Prometheus 监控
一文读懂clickhouse集群监控
一文读懂clickhouse集群监控
2775 2
一文读懂clickhouse集群监控
|
JavaScript 前端开发 Linux
网页多平台桌面打包工具 electron 和 electron-packager 的使用
网页多平台桌面打包工具 electron 和 electron-packager 的使用
604 0
|
存储 传感器 编解码
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
630 0
微软行星云计算planet platform中的高分辨率影像通过API接入Google Earth Engine(GEE)
|
存储 数据采集 消息中间件
|
IDE 测试技术 开发工具
PyCharm设置中文(无需下载中文汉化包)
PyCharm设置中文(无需下载中文汉化包)
363 0
PyCharm设置中文(无需下载中文汉化包)