PDO中的预处理

PDO中的基本的原理和步骤和MySQL中的预处理都是一样的,只不过就是把MySQL中的预处理所有命令行的语法封装成了PDO对象的几个公开的方法而已!

1.发送预处理语句

此时,我们需要调用pdo对象的prepare方法,得到一个PDOStatement结果对象!

2.绑定参数

调用PDOStatement对象中的bindParam方法:

3.执行预处理语句

调用PDOStatement对象中的execute方法,如果执行成功,就返回true,如果执行失败就返回false!

下面是代码

<?php 

/**
* 利用PDO对象实现预处理操作
*/

echo "<meta charset=utf-8>";

//PDO类的实例化

// 1 设置数据源相关参数
$dbms = 'mysql';    //选择数据库类型
$host = 'localhost';
$port = '3306';
$dbname = 'test';
$charset = 'utf8';
$dsn = "$dbms:host=$host;port=$port;dbname=$dbname;charset=$charset";

// 2 设置用户名密码
$user = 'root';
$pwd = '';

// 3 实例化PDO类
$pdo = new PDO($dsn,$user,$pwd);

// 4 预处理
// 4.1 发送预处理
$sql = "insert into pdo values(null, ?, ?)";
$stmt = $pdo->prepare($sql);
// 4.2 绑定参数
// 先把每个参数保存到一个变量中
$name = 'qqqq';
$age = '45';
//再使用bindParam方法绑定参数变量
$stmt->bindParam(1,$name);    //1代表第一个数据占位符
$stmt->bindParam(2,$age);

// 4.3 执行预处理语句
$res = $stmt->execute();
if ($res) {
    echo "预处理语句执行成功!";
}else{
    echo "预处理语句执行失败!";
}

先查一下数据库的数据

执行上述代码之后,结果如下:

 

绑定参数的其他方法

1 使用 :变量名 作为数据占位符

// 4 预处理
// 4.1 发送预处理
$sql = "insert into pdo values(null, :name, :age)";
$stmt = $pdo->prepare($sql);
// 4.2 绑定参数
// 先把每个参数保存到一个变量中
$name = 'qqqq';
$age = '45';
//再使用bindParam方法绑定参数变量
$stmt->bindParam(':name',$name);    
$stmt->bindParam(':age',$age);

在对应位置修改为以上代码,其他代码不动

结果如下

2.使用数组绑定参数

// 4 预处理
// 4.1 发送预处理
//$sql = "insert into pdo values(null, ?, ?)";
$sql = "insert into pdo values(null, :name, :age)";
$stmt = $pdo->prepare($sql);
// 4.2 绑定参数
// 把每个参数保存到一个变量中
$name = 'qqqq';
$age = '45';
// 使用数组绑定参数
$arr = array(
    ':name'  =>  $name,
    ':age'   =>  $age 
    );

// 4.3 执行预处理语句
$res = $stmt->execute($arr);

在对应位置修改为以上代码,其他代码不动

结果如下:

上述为在PDO中使用预处理的几种方式,可以对比着上一篇“MySQL的预处理技术”记忆! 

转载于:https://www.cnblogs.com/zxf100/p/6818775.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值