* 该对象是通过: $pdo->prepare()方法创建
* 读写操作都可以通过:$pdoStmt->execute()方法进行
* 预处理SQL语句句中的占位符除可以使用?号之外,还可以使用命名参数,例如:name:email...
* 下面新增数据为例进行演示,共分6步:
* 1.连接数据库,创建PDO对象
* 2.准备预处理SQL语句,占位符使用命名参数格式:
* 3.创建PDO预处理对象: PDOStatement的实例
* 4. 绑定参数到SQL语句对象,预预处理对象
* 5. 执行新增操作(PDO中,读写都用execute())
* 6. 销毁PDO对象(可选)
//1.连接数据库,创建PDO对象
1 | $pdo = new PDO('mysql:dbname=php', 'root', 'root'); |
//2.准备预处理SQL语句,占位符使用命名参数格式:
1 | $sql = "INSERT `user` SET `user_name`=:name, `email`=:email,`password`=sha1(:password)"; |
//3.创建PDO预处理对象
1 | $stmt = $pdo->prepare($sql); |
//查看生成的SQL语句,可以复制到SQL命令窗口中进行运行,确保语句正确性
1 | echo $stmt->queryString;exit(); |
//4. 绑定参数到预处理对象
1 2 3 4 | $data = ['name'=>'杨过','email'=>'yg@php.cn', 'password'=>'123']; $stmt->bindParam(':name',$data['name'],PDO::PARAM_STR); $stmt->bindParam(':email',$data['email'],PDO::PARAM_STR); $stmt->bindParam(':password',$data['password'],PDO::PARAM_STR); |
//5. 执行新增操作
1 2 3 4 5 6 7 8 | if($stmt->execute()){ //rowCount():返回上一个SQL语句影响的行数 echo '<h3>成功添加了'.$stmt->rowCount().'条记录</h3>'; } else { echo '<h3>添加失败</h3>'; print_r($stmt->errorInfo()); exit(); } |
//6.销毁PDO对象
1 | $pdo = null; |
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) | 黑马程序员IT技术论坛 X3.2 |