php入門教程(七)操作升級(jí)!使用PDO操作數(shù)據(jù)庫(kù)

php5中新增了PDO,他是一個(gè)數(shù)據(jù)庫(kù)訪問抽象層。你也可以理解為驅(qū)動(dòng)程序。
這個(gè)東西比mysqli的好處就是,mysqli只支持mysql,但是PDO支持目前市面上常見的大多數(shù)數(shù)據(jù)庫(kù)。

萬一你做的項(xiàng)目從mysql換成了sql server或者oracle,那你要改的地方可就太多了。
所以現(xiàn)在還是建議使用PD

馬上開整!


這次咱們寫高級(jí)點(diǎn),把連接數(shù)據(jù)庫(kù)那塊的內(nèi)容,寫成一個(gè)公共的文件!

<?php
    define("DB_HOST","127.0.0.1");//數(shù)據(jù)庫(kù)地址
    define("DB_USER","root");//用戶名
    define("DB_PWD","你的數(shù)據(jù)庫(kù)密碼");//密碼
    define("DB_NAME","phptest");//要連接的數(shù)據(jù)庫(kù)名稱
    define("DB_PORT","3306");//數(shù)據(jù)庫(kù)端口號(hào)
    define("DB_TYPE","mysql");//數(shù)據(jù)庫(kù)類型
    define("DB_CHARSET","utf8");//設(shè)置字符集
    define("DB_DSN","mysql:host=".DB_HOST.";dbname=".DB_NAME.";charset=".DB_CHARSET);
    //DSN 提供連接數(shù)據(jù)庫(kù)需要的各種信息,相當(dāng)于在連接數(shù)據(jù)庫(kù)的時(shí)候,附加我們的各種信息.
    //舉個(gè)例子,我們的數(shù)據(jù)庫(kù)可能不在3306,在別的端口,或者字符集不是utf-8,我們就是通過這個(gè)發(fā)送出去的
?>

然后是php中的寫法:

<?php
    require "config.php";
    //require和include的作用完全一樣,但是require遇到錯(cuò)誤會(huì)停止
    try{
        //try{}catch{} 用于處理操作,如果try中的語句遇到錯(cuò)誤,就會(huì)自動(dòng)進(jìn)入catch中去運(yùn)行
        //通過pdo語句連接數(shù)據(jù)庫(kù)
        $pdo = new PDO(DB_DSN,DB_USER,DB_PWD);
    }catch(PDOException $e){
        //一旦出錯(cuò) 輸出錯(cuò)誤信息
        echo $e->getMessage();
    }
    $query = "select * from user";//拼出查詢語句
    $result = $pdo->prepare($query);//把查詢語句轉(zhuǎn)化為一條pdo命令
    $result->execute();//把pdo命令傳入查詢方法 同es6寫法
    
    //引入顯示模板html
    include_once("query.html");
查詢數(shù)據(jù)庫(kù)

html中的寫法和原來區(qū)別不大:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>已注冊(cè)用戶列表</title>
        <script src="https://cdn.bootcss.com/jquery/3.1.0/jquery.min.js"></script>
        <link rel="stylesheet" >
        <style>
            .tableBox {
                width: 600px;
            }
            .table {
                background: #fff;
            }
        </style>
    </head>
    <body class="container bg-info">
        <div class="tableBox">
            <h3>已注冊(cè)用戶列表</h3>
            <table class="table table-bordered">
              <thead>
                  <tr>
                      <td>id</td>
                      <td>郵箱</td>
                      <td>密碼</td>
                      <td>電話</td>
                  </tr>
              </thead>
              <tbody>
                  <!--fetch() pod專用的寫法 獲取結(jié)果集 ::FETCH_ASSOC 數(shù)組形式-->
                  <?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>
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • pdo類PDO是一個(gè)“數(shù)據(jù)庫(kù)訪問抽象層”,作用是統(tǒng)一各種數(shù)據(jù)庫(kù)的訪問接口,與mysql和mysqli的函數(shù)庫(kù)相比,...
    桖辶殤閱讀 973評(píng)論 0 0
  • 我想我再也不會(huì)遇到一個(gè)總是站在教室外走廊上偷看我的男生了。 開學(xué)那天,我抱著新書去教室,遇到了正在打掃衛(wèi)生...
    蔡井兒閱讀 1,073評(píng)論 6 22
  • 我在這古老的城市里, 與心情相連的是沙漠, 我心中那一點(diǎn)點(diǎn)綠洲, 與沙塵相伴, 飛鳥伴著黃沙起舞, 藍(lán)天與霧霾僅一...
    古城蒼狼閱讀 504評(píng)論 3 14
  • 今日成就事件: 突破自己對(duì)權(quán)力的執(zhí)著和欲望 ?今日小確幸: 因真誠(chéng)而收獲信任和愛 ?我今天完成了什么: 早起升國(guó)旗...
    編外媽媽閱讀 202評(píng)論 0 0

友情鏈接更多精彩內(nèi)容