本章主要学习了利用PDO进行数据库的增删改查操作。通过学习,对本章知识点进行练习,代码如下:
<?php require 'ComFun.php'; try { //1.连接数据库 $pdo=new PDO('mysql:host=127.0.0.1;dbname=MySql_Study;charset=utf8;','root','root'); //region 执行插入 //2.执行sql语句 $sql='INSERT INTO `users`(`LoginID`,`UserName`,`Password`,`MobilePhone`,`Sex`,`CreateTime`) VALUES(:LoginID,:UserName,:Password,:MobilePhone,:Sex,:CreateTime)'; //3.验证sql语句并生成预处理对象 $stmt=$pdo->prepare($sql); //4.参数绑定 $LoginID='xiaom'; $UserName='小明'; $Password=sha1('123456'); $MobilePhone='15815265324'; $Sex=0; $CreateTime=time(); $stmt->bindParam(':LoginID',$LoginID,PDO::PARAM_STR,20); $stmt->bindParam(':UserName',$UserName,PDO::PARAM_STR,20); $stmt->bindParam(':Password',$Password,PDO::PARAM_STR,20); $stmt->bindParam(':MobilePhone',$MobilePhone,PDO::PARAM_STR,20); $stmt->bindParam(':Sex',$Sex,PDO::PARAM_INT,1); $stmt->bindParam(':CreateTime',$CreateTime,PDO::PARAM_STR,10); //5.执行 if($stmt->execute()) { echo '执行添加成功。新增用户:' , $UserName; } else { exit(print_r('执行添加用户出错,错误原因:' ,$stmt->errorInfo(),true)); } //endregion echo '<br>'; //region 执行更新 对刚刚插入的小明这一行进行更新 //2.执行sql语句 $sql="UPDATE `users` SET `CreateTime`=:CreateTime where `UserName`=:UserName"; //3.验证sql语句并生成预处理对象 $stmt=$pdo->prepare($sql); //4.参数绑定 $UserName='小明'; $CreateTime=time(); $stmt->bindParam(':UserName',$UserName,PDO::PARAM_STR,20); $stmt->bindParam(':CreateTime',$CreateTime,PDO::PARAM_STR,10); //5.执行 if($stmt->execute()) { echo '执行更新成功。更新用户:' , $UserName , '的创建时间'; } else { exit(print_r('执行更新用户出错,错误原因:' ,$stmt->errorInfo(),true)); } //endregion echo '<br>'; //region 查询数据 //2.执行sql语句 $sql='SELECT `LoginID`,`UserName`,`MobilePhone`,`Sex`,`CreateTime` FROM users WHERE CreateTime<=:CreateTime LIMIT 20'; //3.验证sql语句并生成预处理对象 $stmt=$pdo->prepare($sql); //4.参数绑定 $CreateTime=time(); $stmt->bindParam(':CreateTime',$CreateTime,PDO::PARAM_STR,10); //5.执行 if($stmt->execute()) { //将列的值保存到变量 $stmt->bindColumn('LoginID',$LoginID,PDO::PARAM_STR,20); $stmt->bindColumn('UserName',$UserName,PDO::PARAM_STR,20); $stmt->bindColumn('MobilePhone',$MobilePhone,PDO::PARAM_STR,11); $stmt->bindColumn('Sex',$Sex,PDO::PARAM_INT,1); $stmt->bindColumn('CreateTime',$CreateTime,PDO::PARAM_STR,10); //定义空数组,用于存放最终的结果 $arrs=[]; //循环遍历,把数据存到数组 while($row=$stmt->fetch(PDO::FETCH_ASSOC)) { //$arrs[]=['LoginID'=>$LoginID,'UserName'=>$UserName,'MobilePhone'=>$MobilePhone,'Sex'=>$Sex,'CreateTime'=>$CreateTime]; $arrs[]=$row; } //echo '<pre>' , var_export($arrs,true) , '</pre>'; } else { exit(print_r('执行查询出错,错误原因:' , $stmt->errorInfo(),true)); } //endregion } catch (PDOException $ex) { exit($ex->getMessage()); } finally { $stmt=null; $pdo=null; } ?> <style> table,th,td { border: 1px solid black; padding: 10px; } table { text-align: center; border: 1px solid black; width: 60%; margin: 30px auto; border-collapse: collapse; } table caption { font-size: 1.5em; font-weight: bolder; margin-bottom: 20px; } th { background-color: lightblue; } </style> <table> <caption>用户基本信息表</caption> <tr> <th>用户ID</th> <th>用户名</th> <th>手机号</th> <th>性别</th> <th>注册时间</th> </tr> <?php foreach ($arrs as $arr) : ?> <tr> <td><?php echo $arr['LoginID'] ?></td> <td><?php echo $arr['UserName'] ?></td> <td><?php echo $arr['MobilePhone'] ?></td> <td><?php echo getSex($arr['Sex']) ?></td> <td><?php echo date('Y-m-d H:i:s',$arr['CreateTime']) ?></td> </tr> <?php endforeach; ?> </table>
ComFun.php
<?php function getSex($sex) { switch ($sex) { case 0: return '男'; break; case 1: return '女'; break; default: return '保密'; break; } }
效果图: