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的预处理技术”记忆!
——现在的努力,只为小时候吹过的牛逼! ——