abstract:本章主要學(xué)習(xí)了利用PDO進(jìn)行數(shù)據(jù)庫的增刪改查操作。通過學(xué)習(xí),對本章知識點(diǎn)進(jìn)行練習(xí),代碼如下:<?php require 'ComFun.php'; try { //1.連接數(shù)據(jù)庫 $pdo=new PDO('mysql:host=127.0.0.1;
本章主要學(xué)習(xí)了利用PDO進(jìn)行數(shù)據(jù)庫的增刪改查操作。通過學(xué)習(xí),對本章知識點(diǎn)進(jìn)行練習(xí),代碼如下:
<?php require 'ComFun.php'; try { //1.連接數(shù)據(jù)庫 $pdo=new PDO('mysql:host=127.0.0.1;dbname=MySql_Study;charset=utf8;','root','root'); //region 執(zhí)行插入 //2.執(zhí)行sql語句 $sql='INSERT INTO `users`(`LoginID`,`UserName`,`Password`,`MobilePhone`,`Sex`,`CreateTime`) VALUES(:LoginID,:UserName,:Password,:MobilePhone,:Sex,:CreateTime)'; //3.驗(yàn)證sql語句并生成預(yù)處理對象 $stmt=$pdo->prepare($sql); //4.參數(shù)綁定 $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.執(zhí)行 if($stmt->execute()) { echo '執(zhí)行添加成功。新增用戶:' , $UserName; } else { exit(print_r('執(zhí)行添加用戶出錯,錯誤原因:' ,$stmt->errorInfo(),true)); } //endregion echo '<br>'; //region 執(zhí)行更新 對剛剛插入的小明這一行進(jìn)行更新 //2.執(zhí)行sql語句 $sql="UPDATE `users` SET `CreateTime`=:CreateTime where `UserName`=:UserName"; //3.驗(yàn)證sql語句并生成預(yù)處理對象 $stmt=$pdo->prepare($sql); //4.參數(shù)綁定 $UserName='小明'; $CreateTime=time(); $stmt->bindParam(':UserName',$UserName,PDO::PARAM_STR,20); $stmt->bindParam(':CreateTime',$CreateTime,PDO::PARAM_STR,10); //5.執(zhí)行 if($stmt->execute()) { echo '執(zhí)行更新成功。更新用戶:' , $UserName , '的創(chuàng)建時間'; } else { exit(print_r('執(zhí)行更新用戶出錯,錯誤原因:' ,$stmt->errorInfo(),true)); } //endregion echo '<br>'; //region 查詢數(shù)據(jù) //2.執(zhí)行sql語句 $sql='SELECT `LoginID`,`UserName`,`MobilePhone`,`Sex`,`CreateTime` FROM users WHERE CreateTime<=:CreateTime LIMIT 20'; //3.驗(yàn)證sql語句并生成預(yù)處理對象 $stmt=$pdo->prepare($sql); //4.參數(shù)綁定 $CreateTime=time(); $stmt->bindParam(':CreateTime',$CreateTime,PDO::PARAM_STR,10); //5.執(zhí)行 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); //定義空數(shù)組,用于存放最終的結(jié)果 $arrs=[]; //循環(huán)遍歷,把數(shù)據(jù)存到數(shù)組 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('執(zhí)行查詢出錯,錯誤原因:' , $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>手機(jī)號</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; } }
效果圖:
Correcting teacher:韋小寶Correction time:2018-12-10 15:01:40
Teacher's summary:嗯!寫的很不錯!PDO連接數(shù)據(jù)庫是很基礎(chǔ)的東西!越基礎(chǔ)的東西越要牢牢掌握!課后記得多練習(xí)哦!