PDO 連接 MySQL

4/28/2019 @Linux 技術手札 標籤: mod, 資料庫, ost, abl, php, ble, 資料, tab, data, mysql, ect, ion, sql, att, name

PHP 連接 MySQL 可以很簡單直接地 mysql_connect() 或 mysqli_connect(), 那麼為什麼是要 PDO? PDO 是功能更為強大的資料庫 API, 即使將來要轉換資料庫系統, 只需更改連接的參數, 不需每個出現 mysql_* 函式的程式碼都修改, 以往要做到這樣, 通常是寫一個簡單的連接 MySQL class, 或者直接用 ADOdb 之類來做。


另一個優點是 PDO 會自動將用戶的輸入清理乾淨, 即防止 SQL Injection, 對於一些初學者不知道什麼是 SQL Injection, 使用 PDO 就顯得更加安全。而且在 PHP 5.5 已經沒有了 mysql_* 函式, 所以用 PDO 是更好的選擇。

PDO 連接 MySQL:
跟 mysql_connect() 及 mysqli_connect() 不同, 用 PDO 連接 MySQL 需要宣告資料庫類型:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
try {
$pdo = new PDO("mysql:host=localhost;dbname=db_name", "db_username", "db_password");
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
 
##### 印出 table_name 所有資料
$data = $pdo->query('SELECT * FROM table_name');
foreach($data as $row) {
print_r($row);
}
} catch (PDOException $pe) {
die("Could not connect to the database: " . $pe->getMessage());
}
?>