在之前的文章中為大家帶來了《PHP資料庫學習之怎樣取得查詢結果的行數? 》,其中詳細的介紹了PHP資料庫中怎樣取得查詢結果的行數,本篇文章我們一起來看看PHP中PDO的相關知識。希望對大家有幫助!
在PHP資料庫學習的前面幾篇文章中我們介紹了PHP中mysqli類別的一些相關知識,其中我們知道mysqli只能夠支援MySQL資料庫,這時候我們想要連接其他資料庫的話就不太行了,那我們要怎麼連接其他的資料庫呢?透過什麼方式呢?這時候我們需要介紹一下我們PHP中另一個資料庫相關的類,就是PDO類。接下來我們一起來看看吧。
PDO是什麼
#PDO是PHP資料物件的簡稱,精確來說PDO是PHP存取資料庫定義的一個接口,可以透過它提供的同一個函數來執行查詢和取得資料。這個介面是一個輕量級的一致的,無論你使用的是什麼資料庫都可以透過同一個函數存取執行。這樣的操作大大簡化了資料庫的操作,而且我們也不用根據資料庫不同的差異而做出改變。
這樣的話有了 PDO 就不必再使用 mysqli_*
的一系列函數了,只需要使用 PDO 中的方法就可以對資料庫進行操作。
我們可以將 PDO 看作是一個“資料庫存取抽象層”,作用是統一各種資料庫的存取介面。 PDO 將透過一種輕量、清晰、方便的函數,統一各種不同的資料庫的共有特性,實現 PHP 腳本在最大程度上的抽象性和相容性。
PDO 擴充功能是模組化的,能夠在運行時為用戶資料庫後端載入驅動程序,而不必重新編譯或重新安裝整個 PHP 程式。
怎麼開啟PDO
在預設情況下,PDO 在PHP 中是開啟的狀態,但是有些對某個資料庫的驅動程式想要啟動的話,還是要進行對應的開啟操作。
下面我們以windows為例,在php.ini
設定檔中找到PDO的相關設定資訊:
其中想要開啟對應的設定只需要移除設定項前面的分號;
,然後重新啟動Apache 伺服器即可。
配置完成後可以透過phpinfo()
來查看是否開啟成功,範例如下:
<?php phpinfo(); ?>
在輸出結果中可以查詢到下列結果:
如此我們便透過php.ini設定檔開啟了PDO,既然已經開啟了pdo,下面就是要怎樣去連接資料庫了,那接下來我們來看一下PHP中怎樣使用PDO來連接資料庫。
PHP使用PDO連接資料庫
#PHP想要使用PDO連接資料庫就是要與不同的資料庫進行交互,這時候PDO物件中的成員方法時同意各種資料庫的存取接口,以達到和不同的資料庫進行互動的目的。所以在使用PDO與資料庫互動之前我們先建立一個PDO對象,再透過對象的建構子來連接資料庫。這個建構函數的語法格式如下:
PDO::__construct(string $dsn[, string $username [, string $password [, array $driver_options]]])
其中需要注意的是:
$dsn
表示資料來源名稱或稱為DSN,其中包含了請求連接到資料庫的資訊。通常一個 DSN 是由 PDO 驅動程式的名稱,後面加上一個冒號,再後面是可選的驅動程式的資料庫連接資訊。
$username
表示可選參數,用來表示DSN 字串中的使用者名稱;
$password
表示可選參數,用來表示DSN 字串中的密碼;
$driver_options
表示可選參數,一個具體驅動的連接選項的鍵/值數組。
可以用多種方式呼叫建構方法建立 PDO 對象,以下以連接 MySQL 資料庫為例,為大家介紹建構方法的多種呼叫方式。
範例如下:
<?php /* 通过调用驱动程序创建一个PDO实例 */ $dsn = 'mysql:dbname=testdb;host=127.0.0.1'; $user = 'dbuser'; $password = 'dbpass'; try { $dbh = new PDO($dsn, $user, $password); } catch (PDOException $e) { echo 'Connection failed: ' . $e->getMessage(); } ?>
上述示例中,将参数嵌入到构造函数中,在 DSN 字符串中加载 mysql 驱动程序并指定了两个可选参数:第一个是数据库名称,第二个是数据库地址。其他的驱动程序会同样以不同的方式解释它的 DSN,如果无法加载驱动程序,或者发生了连接失败,则会抛出一个 PDOException,以便可以决定如何最好地处理该故障。
其中的参数也可以储存在一个本地或者远程的文件中,然后在构造函数中引用这一文件,示例如下:
首先在本地的文件中创建一个dsn.txt的文件,其中的内容和路径如下:
然后输入示例如下:
<?php $dsn = 'C:\Users\Administrator\Desktop\1.0\1028\dsn.txt'; $user = 'root'; $pwd = 'root'; try{ $obj = new PDO($dsn,$user,$pwd); }catch(PDOException $e){ echo '数据库连接失败:'.$e -> getMessage(); } ?>
由此我们便通过吧擦书储存在文件里,然后通过构造函数完成了数据库的调用。
大家如果感兴趣的话,可以点击《PHP视频教程》进行更多关于PHP知识的学习。
以上是PHP資料庫學習如何使用PDO連結資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!