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 "操作成功!";

}

  

时间: 2024-09-12 01:11:13

PDO预处理的相关文章

PDO预处理语句PDOStatement对象使用总结_php实例

PDO对预处理语句的支持需要使用PDOStatement类对象,但该类对象并不是通过NEW关键字实例化出来的,而是通过PDO对象中的prepare()方法,在数据库服务器中准备好一个预处理的SQL语句后直接返回的.如果通过之前执行PDO对象中的query()方法返回的PDOStatement类对象,只代表的是一个结果集对象.而如果通过执行PDO对象中的prepare()方法产生的PDOStatement类对象,则为一个查询对象,能定义和执行参数化的SQL命令.PDOStatement类中的全部成

PHP基础知识之————PDO预处理语句

转载处:http://www.cnblogs.com/xiaohuochai/p/6133353.html   定义 在生成网页时,许多PHP脚本通常都会执行除参数之外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,PDO提供了一种名为预处理语句(prepared statement)的机制.它可以将整个SQL命令向数据库服务器发送一次,以后只有参数发生变化,数据库服务器只需对命令的结构做一次分析就够了,即编译一次,可以多次执行.会在服务器上缓存查询的语句和执

PHP 5 数据对象 (PDO) 抽象层与 Oracle

oracle|对象|数据 一名新 PHP 数据对象 (PDO) 数据抽象层的原始开发人员为您简要介绍该抽象层,重点讲述与 Oracle 一起运行的情况. 需要 PHP:5.0 需要其他:Oracle 8 或更高版本客户端库 下载用于 Oracle 的 PDO (Windows):php_pdo.dll, php_pdo_oci.dll 下载用于 Oracle 的 PDO (Unix):pdo, pdo_oci PDO 简介 PHP 主要是由志愿者完成的项目:尽管有少数一些固定的"核心"

PDO事务处理

PDO事务处理 2014-9-3 10:44:19 By jiancaigege ==================================== 概要:将多条sql操作(增删改)作为一个操作单元,要么都成功,要么都失败. 单条数据不用事务处理 被操作的表必须是innoDB类型的表(支持事务) MySQL常用的表类型:MyISAM(非事务)增删改速度快.InnodB(事务型)安全性高 更改表的类型为innoDB类型 mysql> alter table stu engine=innodb

PDO的安全处理与事物处理方法_php技巧

事务 (Transaction) 是操作数据库中很重要的一个功能, 它可以让你预定一条, 或者一系列 SQL 语句, 然后一起执行,并且在执行的过程中, 如果其中的某条执行失败, 可以回滚所有已更改的操作. 如果执行成功, 那么这一系列操作都会永久有效. 事务很好的解决了在操作数据库的时候不同步的问题. 同时, 通过事务去执行大数据量的时候, 执行效率可以提高很多很多. 事务处理具有四个特性:原子性.一致性.独立性.持久性.并不是所有的数据库都支持事务处理的,PDO 为能够执行事务处理的数据库提

pdo封装数据库类的时候报了这样一条错误。

问题描述 pdo封装数据库类的时候报了这样一条错误. 说不是这个对象的成员函数,求大牛解惑 <?php header("Content-type:text/html;charset=utf8"); class pdoMysql{ public static $configAll = array(); //存储配置信息 public static $link = null; //存储连接对象 public static $pconnect = false;//在数据库连接的时候,第

php_pdo 预处理语句详解_php技巧

这篇文章主要介绍的是关于php_pdo 预处理语句,下面话不多说,我们来看看详细的内容. 一.预处理语句可以带来两大好处: 1.查询仅需解析(或预处理)一次,但可以用相同或不同的参数执行多次.当查询准备好后,数据库将分析.编译和优化 执行该查询的计划.对于复杂的查询,此过程要花费较长的时间,如果需要以不同参数多次重复相同的查询,那么该过程将大 大降低应用程序的速度.通过使用预处理语句,可以避免重复分析/编译/优化周期.简言之,预处理语句占用更少的资源,因 而运行得更快. 2.提供给预处理语句的参

PHP 5 数据对象 (PDO) 抽象层与 Oracle_php基础

一名新 PHP 数据对象 (PDO) 数据抽象层的原始开发人员为您简要介绍该抽象层,重点讲述与 Oracle 一起运行的情况. 需要 PHP:5.0需要其他:Oracle 8 或更高版本客户端库下载用于 Oracle 的 PDO (Windows):php_pdo.dll, php_pdo_oci.dll下载用于 Oracle 的 PDO (Unix):pdo, pdo_oci PDO 简介 PHP 主要是由志愿者完成的项目:尽管有少数一些固定的"核心"开发人员,但是我们没有一个人在全

mysql PDO 操作类的例子

介绍: 1.只有在执行select.update.delete.insert等操作时才会连接数据库 2.采用PDO预处理方式 3.事务处理 4.错误输出    代码如下 复制代码 <?php /**  * mysql PDO 操作类  * Created by PhpStorm.  * User: sumiaowen  * Date: 14-3-12  * Time: 下午4:57  * To change this template use File | Settings | File Tem