abstract:查操作<?php /** * PDO 常规查询 */ //1.连接数据库 $pdo = new PDO('mysql:dbname=php_edu','root','root'); //2.执行查询 //准备sql语句 $sql = "S
查操作
<?php /** * PDO 常规查询 */ //1.连接数据库 $pdo = new PDO('mysql:dbname=php_edu','root','root'); //2.执行查询 //准备sql语句 $sql = "SELECT `id`,`name`,`email`,`create_time` FROM `user` WHERE `status` = :status ;"; //验证sql语句并生成预处理对象 $stmt = $pdo->prepare($sql); //执行 $stmt->execute([':status'=>1]); //fetch()进行遍历 while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) { //将每条记录转存到一个二维数组中,便于在模板中独立输出 $rows[] = $row; } //释放结果集 $stmt = null; //关闭连接 $pdo = null; ?> <style> table,th,td { border: 1px solid #333; } table { text-align: center; border: 1px solid #333; width: 50%; margin: 30px auto; border-collapse: collapse; } table caption { font-size: 1.5em; font-weight: bolder; margin-bottom: 15px; } table tr:first-child { background-color: lightblue; } </style> <table> <caption style="">用户信息表</caption> <tr> <th>ID</th> <th>姓名</th> <th>邮箱</th> <th>注册时间</th> </tr> <?php foreach ($rows as $row) :?> <tr> <td><?php echo $row['id'] ?></td> <td><?php echo $row['name'] ?></td> <td><?php echo $row['email'] ?></td> <td><?php echo date('Y年 m月 d日',$row['create_time']) ?></td> </tr> <?php endforeach;?> </table>
增操作
<?php //1.连接数据库,创建pdo对象 $pdo = new PDO('mysql:dbname=php_edu','root','root'); //2.创建SQL语句,命名占位符声明参数(IGNORE,必须写紧跟在 INSERT 的后面) $sql = "INSERT IGNORE INTO `user` (`name`,`email`,`password`,`status`,`create_time`) VALUES (:name,:email,:password,:status,:create_time)"; //3.验证SQL语句,创建预处理对象 $stmt = $pdo->prepare($sql); //4参数绑定 $name = '李莫愁'; $email = 'lmc@php.cn'; $password = sha1('123456'); $status = 1; $createTime = time(); $stmt->bindParam(':name',$name,PDO::PARAM_STR,20); $stmt->bindParam(':email',$email,PDO::PARAM_STR,100); $stmt->bindParam(':password',$password,PDO::PARAM_STR,40); $stmt->bindParam(':status',$status,PDO::PARAM_INT); $stmt->bindParam(':create_time',$createTime,PDO::PARAM_INT); //5.执行SQL语句(成功true,失败false) if ($stmt->execute()) { echo ($stmt->rowCount()>0) ? '成功添加了'.$stmt->rowCount().'条记录!' : '没有记录被添加!'; } else { exit(print_r($stmt->errorInfo(),true)); }
改操作
<?php //1.连接数据库,创建pdo对象 $pdo = new PDO('mysql:dbname=php_edu','root','root'); //2.创建SQL语句 $sql = "UPDATE `user` SET `email`=:email,`create_time`=:create_time WHERE `id`=:id"; //3.验证SQL语句,创建预处理对象 $stmt = $pdo->prepare($sql); //4参数绑定 $id = 3; $email = 'yln@php.cn'; $createTime = time(); $stmt->bindParam(':id',$id,PDO::PARAM_INT); $stmt->bindParam(':email',$email,PDO::PARAM_STR,100); $stmt->bindParam(':create_time',$createTime,PDO::PARAM_INT); //5.执行SQL语句(成功true,失败false) if ($stmt->execute()) { echo ($stmt->rowCount()>0) ? '成功更新了'.$stmt->rowCount().'条记录!' : '没有记录被更新!'; } else { exit(print_r($stmt->errorInfo(),true)); }
删除操作太危险,我觉得用改操作完成
$status = 0; $stmt->bindParam(':status',$status,PDO::PARAM_INT);
Correcting teacher:天蓬老师Correction time:2018-12-11 14:55:10
Teacher's summary:execute中只传入数组就行,不用':status'=>1