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

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>
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • pdo类PDO是一个“数据库访问抽象层”,作用是统一各种数据库的访问接口,与mysql和mysqli的函数库相比,...
    桖辶殇阅读 890评论 0 0
  • 我想我再也不会遇到一个总是站在教室外走廊上偷看我的男生了。 开学那天,我抱着新书去教室,遇到了正在打扫卫生...
    蔡井儿阅读 1,008评论 6 22
  • 我在这古老的城市里, 与心情相连的是沙漠, 我心中那一点点绿洲, 与沙尘相伴, 飞鸟伴着黄沙起舞, 蓝天与雾霾仅一...
    古城苍狼阅读 486评论 3 14
  • 今日成就事件: 突破自己对权力的执着和欲望 ️今日小确幸: 因真诚而收获信任和爱 ️我今天完成了什么: 早起升国旗...
    编外妈妈阅读 186评论 0 0