欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互,相信很多沒有經(jīng)驗的人對此束手無策,為此本文總結了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個問題。

目前創(chuàng)新互聯(lián)已為成百上千的企業(yè)提供了網(wǎng)站建設、域名、雅安服務器托管、網(wǎng)站改版維護、企業(yè)網(wǎng)站設計、額濟納網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。

今天我們來看看另一個 PHP 內(nèi)置的數(shù)據(jù)庫擴展 —— PDO,其全稱是 PHP Data Objects,即 PHP 數(shù)據(jù)對象。

 

1、PDO 簡介與安裝

PDO 為 PHP 訪問數(shù)據(jù)庫定義了一個輕量級的一致接口,因此它提供的是一個數(shù)據(jù)訪問抽象層,本身并不能實現(xiàn)任何數(shù)據(jù)庫交互功能,必須使用一個具體數(shù)據(jù)庫的 PDO 驅動來訪問數(shù)據(jù)庫服務,這些具體數(shù)據(jù)庫驅動包括 MySQL、PostgreSQL、SQLite、SQL Server、Oracle 等,因此 PDO 是一個更加標準、更加通用的數(shù)據(jù)庫擴展,而且完全是面向對象風格的,目前,在各個主流 PHP 框架中,PDO 已經(jīng)成為了構建數(shù)據(jù)庫交互的基礎組件,包括 Laravel 框架,也是基于 PDO 擴展提供數(shù)據(jù)庫訪問功能。

我們之前推薦的 PHP 本地集成開發(fā)環(huán)境都集成了對 PDO 擴展的支持(以下是 Laragon 預裝的 PHP 擴展):

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互  
PHP 擴展

并且可以看到,除了 PDO 擴展外,還有一個與之匹配的具體數(shù)據(jù)庫擴展 pdo_mysql,有了這個具體擴展,才能訪問 MySQL 數(shù)據(jù)庫。另外,PDO 提供了統(tǒng)一的數(shù)據(jù)庫訪問接口,所以實現(xiàn)了 PDO 接口的具體數(shù)據(jù)庫擴展可以通過完全一樣的方法訪問數(shù)據(jù)庫,這樣一來,如果應用需要切換數(shù)據(jù)庫,就不需要對數(shù)據(jù)庫操作代碼進行重構,僅憑這一點,就可以扔掉 MySQLi 擴展,投入 PDO 的懷抱了。

如果安裝過 Laradock,可以啟動 workspace 容器,然后查看其預裝的 PHP 擴展,可以看到,它包含更多的具體 PDO 數(shù)據(jù)庫驅動支持:

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互  
PHP 擴展

其中 pdo_pgsql 表示 PostgresSQL 數(shù)據(jù)庫驅動,pdo_sqlite 表示 SQLite 數(shù)據(jù)庫驅動。

 

建立數(shù)據(jù)庫連接與基本查詢

在我們的教程中,還是選擇以 MySQL 為例進行演示。

要通過 PDO 擴展建立數(shù)據(jù)庫連接,直接實例化 PDO 對象即可,我們編寫一段簡單的示例代碼如下(在 php_learning/mysql 目錄下新建 pdo.php 存儲代碼):

<?php

// 設置連接屬性
$dsn = 'mysql:host=127.0.0.1;port=3306;dbname=test;charset=utf8mb4';
$user = 'root';
$pass = 'root';

try {
    // 建立連接
    $pdo = new PDO($dsn, $user, $pass);
    // 執(zhí)行 SQL 查詢
    $sql = $pdo->quote('SELECT * FROM `post` ORDER BY `id` DESC');
    $res = $pdo->query($sql);
    // 打印查詢結果
    echo '<pre>';
    foreach ($res as $row) {
        print_r($row);
    }
} catch (PDOException $exception) {
    // 如果數(shù)據(jù)庫操作出現(xiàn)異常,則捕獲并打印
    printf("Error: %s\n", $exception->getMessage());
} finally {
    // 釋放 PDO 連接實例
    $pdo = null;
}
 

在實例化 PDO 對象創(chuàng)建數(shù)據(jù)庫連接時,至少需要傳入三個字符串類型參數(shù),第一個參數(shù)包含了數(shù)據(jù)庫主機信息,比如數(shù)據(jù)庫驅動類型(這里是 mysql)、IP地址(本地地址是 127.0.0.1)、端口號(可選,默認是 3306)、要連接的數(shù)據(jù)庫名稱(test)、字符編碼信息(utf8mb4)等,第二個參數(shù)是用戶名,第三個參數(shù)是密碼。

接下來,我們就可以調(diào)用 PDO 對象實例 $pdo 上的 query 方法執(zhí)行指定 SQL 語句與數(shù)據(jù)庫進行交互了(增刪改查),不過在此之前,我們先調(diào)用了 quote 方法對查詢 SQL 語句進行轉義,該函數(shù)的功能類似 mysqli_escape_string。

執(zhí)行完 SQL 查詢后,會返回一個查詢結果集,可以通過循環(huán)遍歷打印該結果。

此外,通過 PDO 擴展進行數(shù)據(jù)庫連接和查詢操作如果出現(xiàn)錯誤,會拋出異常,為了增加程序的健壯性,我們在通過 try...catch... 語句捕獲 PDOException 異常,并打印錯誤信息,最后通過 finally 語句釋放 PDO 對象實例,因為該語句塊不管是否拋出異常都會執(zhí)行。

運行 php -S localhost:9000 啟動內(nèi)置 HTTP 服務器進行測試,在瀏覽器中訪問 http://localhost:9000/mysql/pdo.php,即可看到正常的打印結果:

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互  
數(shù)據(jù)庫查詢結果

我們修改下上述代碼中的連接信息,比如將密碼值調(diào)整為 test,這個時候就會捕獲到 PDO 異常,并打印錯誤消息:

如何通過PDO擴展與MySQL數(shù)據(jù)庫交互  
數(shù)據(jù)庫連接出錯

注:錯誤信息中的 IP 地址是 MySQL Docker 容器內(nèi)部的 IP 地址。可以忽略,這個報錯是密碼錯誤,而不是 IP 地址的問題。

看完上述內(nèi)容,你們掌握如何通過PDO擴展與MySQL數(shù)據(jù)庫交互的方法了嗎?如果還想學到更多技能或想了解更多相關內(nèi)容,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!

網(wǎng)頁名稱:如何通過PDO擴展與MySQL數(shù)據(jù)庫交互
當前地址:http://chinadenli.net/article24/jeioje.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供虛擬主機、標簽優(yōu)化、云服務器微信小程序、域名注冊

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設
亚洲精品国产美女久久久99| 国产欧美日韩精品一区二区| 日本高清一道一二三区四五区| 热久久这里只有精品视频| 国产女性精品一区二区三区 | 国产精品不卡高清在线观看| 高清一区二区三区四区五区| 久久本道综合色狠狠五月| 中文字幕中文字幕一区二区| 免费在线成人午夜视频| 亚洲成人黄色一级大片| 亚洲欧美视频欧美视频| 国产又粗又猛又爽又黄| 妻子的新妈妈中文字幕| 国产永久免费高清在线精品| 欧美日韩国产二三四区| 免费性欧美重口味黄色| 91插插插外国一区二区婷婷| 国产伦精品一一区二区三区高清版 | 中文字幕在线五月婷婷| 久久99爱爱视频视频| 老富婆找帅哥按摩抠逼视频| 国产精品蜜桃久久一区二区| 亚洲视频一区自拍偷拍另类 | 欧美一区二区三区五月婷婷| 中文字幕人妻av不卡| 欧美国产在线观看精品| 精品久久综合日本欧美| 伊人色综合久久伊人婷婷| 黄色国产精品一区二区三区| 香蕉久久夜色精品国产尤物| 国产一区国产二区在线视频| 精产国品一二三区麻豆| 青青免费操手机在线视频| 欧美老太太性生活大片| 欧美高潮喷吹一区二区| 亚洲欧美日韩另类第一页| 国产精品日本女优在线观看| 亚洲清纯一区二区三区| 久久re6热在线视频| 国产三级不卡在线观看视频|