PDO基本操作总结

原创2018-12-10 14:49:38104
摘要:本章主要学习了利用PDO进行数据库的增删改查操作。通过学习,对本章知识点进行练习,代码如下:<?php require 'ComFun.php'; try {     //1.连接数据库     $pdo=new PDO('mysql:host=127.0.0.1;

本章主要学习了利用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;
    }
}

效果图:

QQ截图20181210144538.jpg

批改老师:韦小宝批改时间:2018-12-10 15:01:40
老师总结:嗯!写的很不错!PDO连接数据库是很基础的东西!越基础的东西越要牢牢掌握!课后记得多练习哦!

发布手记

热门词条