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 |
<?php 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()); } ?> |