首頁 >後端開發 >PHP問題 >php用pdo好嗎

php用pdo好嗎

(*-*)浩
(*-*)浩原創
2019-09-12 11:54:553084瀏覽

PDO - PHP 資料物件(PHP Data Object)的縮寫,作為一個為多種資料庫提供統一的連接介面的方式PDO底層需要配合對應資料庫的PDO資料驅動來操作資料庫。 PDO是當今PHP官方推薦的資料庫連接方式,其優勢在於:

php用pdo好嗎

#1、PDO 真正的以底層實現的統一介面數庫操作接口,不管後端使用的是何種資料庫,如果代碼封裝好了以後,應用層調用基本上差不多的,當後端數據庫更換了以後,應用層代碼基本不用修改.(推薦學習:PHP程式設計從入門到精通

2、PDO 支援更高階的DB 特性操作,如:儲存過程的調度等, mysql 原生程式庫是不支援的.

3、 PDO 是PHP 官方的PECL 函式庫,相容性穩定性必然要高於MySQL Extension,可以直接使用pecl upgrade pdo 指令升級.

4、PDO 可以防止SQL 注入,確保資料庫更安全 PDO 防止SQL 注入的原理

在PHP 5.1.0 之後PDO 預設開啟狀態你可以透過phpinfo()函數來查看PDO 的開啟狀態:

php用pdo好嗎#PDO 預處理

當我們使用資料庫執行查詢時,資料庫管理系統( DBMS )會對查詢進行編譯,最佳化查詢,而使用PDO 預處理可以讓這個過程只​​在第一次查詢的時候進行,在後續的相同的查詢只需要對綁定的參數進行替換,這樣就節省了重複編譯的時間,另外使用PDO 參數綁定還可以避免SQL 注入等安全性問題。

程式碼示範:

<?phptry{
    $dbh=new PDO(&#39;mysql:host=localhost;dbname=testDB&#39;,&#39;root&#39;,&#39;&#39;);
    $stmt=$dbh->prepare("INSERT users (user_name,sex) VALUES (:user_name,:sex)");

    $stmt->bindParam(&#39;:user_name&#39;,$name);
    $stmt->bindParam(":sex",$sex);    //插入一行
    $name="yang001";
    $sex="M";
    $stmt->execute();    //再次插入一行
    $name="yang002";
    $sex="F";
    $stmt->execute();

}catch (PDOException $e){    print "Error ! : ".$e->getMessage();    die();
}

查看資料庫結果如下:

php用pdo好嗎#我們使用預處理的查詢語句來取出結果:

<?phptry{
    $dbh=new PDO(&#39;mysql:host=localhost;dbname=testDB&#39;,&#39;root&#39;,&#39;&#39;);
    $stmt=$dbh->prepare("SELECT * FROM users WHERE user_name=:user_name ");

    $stmt->bindParam(&#39;:user_name&#39;,$name);    //插入一行
    $name="yang001";    if($stmt->execute()){        while ($row=$stmt->fetch(PDO::FETCH_ASSOC)){
            print_r($row);
        }
    }


}catch (PDOException $e){    print "Error ! : ".$e->getMessage();    die();
}

結果如下:

php用pdo好嗎

以上是php用pdo好嗎的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:ecshop支援php下一篇:ecshop支援php