php入门教程—打通前后端

php入门教程(七)操作升级!使用PDO操作数据库

2019-10-17  本文已影响0人  党云龙

php5中新增了PDO,他是一个数据库访问抽象层。你也可以理解为驱动程序。
这个东西比mysqli的好处就是,mysqli只支持mysql,但是PDO支持目前市面上常见的大多数数据库。

万一你做的项目从mysql换成了sql server或者oracle,那你要改的地方可就太多了。
所以现在还是建议使用PD

马上开整!


这次咱们写高级点,把连接数据库那块的内容,写成一个公共的文件!

<?php
    define("DB_HOST","127.0.0.1");//数据库地址
    define("DB_USER","root");//用户名
    define("DB_PWD","你的数据库密码");//密码
    define("DB_NAME","phptest");//要连接的数据库名称
    define("DB_PORT","3306");//数据库端口号
    define("DB_TYPE","mysql");//数据库类型
    define("DB_CHARSET","utf8");//设置字符集
    define("DB_DSN","mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);
    //DSN 提供连接数据库需要的各种信息,相当于在连接数据库的时候,附加我们的各种信息.
    //举个例子,我们的数据库可能不在3306,在别的端口,或者字符集不是utf-8,我们就是通过这个发送出去的
?>

然后是php中的写法:

<?php
    require "config.php";
    //require和include的作用完全一样,但是require遇到错误会停止
    try{
        //try{}catch{} 用于处理操作,如果try中的语句遇到错误,就会自动进入catch中去运行
        //通过pdo语句连接数据库
        $pdo = new PDO(DB_DSN,DB_USER,DB_PWD);
    }catch(PDOException $e){
        //一旦出错 输出错误信息
        echo $e->getMessage();
    }
    $query = "select * from user";//拼出查询语句
    $result = $pdo->prepare($query);//把查询语句转化为一条pdo命令
    $result->execute();//把pdo命令传入查询方法 同es6写法
    
    //引入显示模板html
    include_once("query.html");
查询数据库

html中的写法和原来区别不大:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>已注册用户列表</title>
        <script src="https://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
        <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css">
        <style>
            .tableBox {
                width: 600px;
            }
            .table {
                background: #fff;
            }
        </style>
    </head>
    <body class="container bg-info">
        <div class="tableBox">
            <h3>已注册用户列表</h3>
            <table class="table table-bordered">
              <thead>
                  <tr>
                      <td>id</td>
                      <td>邮箱</td>
                      <td>密码</td>
                      <td>电话</td>
                  </tr>
              </thead>
              <tbody>
                  <!--fetch() pod专用的写法 获取结果集 ::FETCH_ASSOC 数组形式-->
                  <?php while($rows = $result -> fetch(PDO::FETCH_ASSOC)) { ?>
                  <tr>
                      <td>
                            <?php echo $rows['id']?>
                      </td>
                      <td>
                          <?php echo $rows['email']?>
                      </td>
                      <td>
                          <?php echo $rows['password']?>
                      </td>
                      <td>
                          <?php echo $rows['tel']?>
                      </td>
                  </tr>
                  <?php } ?>
              </tbody>
            </table>
        </div>
    </body>
</html>
上一篇下一篇

猜你喜欢

热点阅读