PHP作為一門強大的 web 開發語言,提供了許多操作數據庫的方式,比如 MySQLi 和 PDO 等類。而 PDO 類在處理數據庫時更加靈活,兼容多種不同的數據庫,還能夠防止 SQL 注入攻擊。接下來我們將詳細介紹一下 PDO 類在 PHP 中的應用。
首先,我們需要配置 PDO 連接。下面是一個簡單的例子:
//定義變量 $host = "localhost"; $dbname = "testdb"; $user = "root"; $password = ""; //連接數據庫 try { $pdo = new PDO("mysql:host=$host;dbname=$dbname", $user, $password); $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } catch(PDOException $e){ die("連接失敗: " . $e->getMessage()); }
在這個簡單的例子中,我們先定義了所需的數據庫變量,然后使用 PDO 構造函數來連接數據庫。最后,我們使用 setAttribute() 方法來設置 PDO 連接的錯誤模式。在開發過程中使用 PDO 異常處理能夠簡單有效地避免一些常見的錯誤。
接下來,我們可以利用 PDO 來查詢并處理數據庫中的數據。下面是一個實現從數據庫中讀取數據并展示的例子:
//查詢語句 $sql = "SELECT * FROM my_table"; //執行查詢并讀取數據 try { $stmt = $pdo->query($sql); while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { echo $row['name'] . " " . $row['age']; } } catch(PDOException $e) { echo "查詢失敗: " . $e->getMessage(); }
在這個例子中,我們首先定義了一個查詢語句,然后使用 query() 方法執行該語句。接下來,我們使用 while 循環來遍歷查詢結果集并打印出每一條數據的 name 和 age。
除了查詢數據,PDO 還可以通過 prepare() 方法來創建預處理語句。預處理語句可以有效防止 SQL 注入攻擊:
//預處理語句 $stmt = $pdo->prepare("INSERT INTO my_table (name, age) VALUES (:name, :age)"); $stmt->bindParam(":name", $name); $stmt->bindParam(":age", $age); //執行預處理語句 $name = "Peter"; $age = 30; $stmt->execute();
在上面的例子中,我們創建了一個預處理語句并使用 bindParam() 方法綁定參數。在執行預處理語句時,我們只需為每個參數傳遞相應的值即可。這樣,我們就可以避免 SQL 注入攻擊,而且還可以提高執行效率。
最后,我們需要記得在操作數據庫后關閉 PDO 連接:
//關閉 PDO 連接 $pdo = null;
到此為止,我們已經介紹了 PDO 類在 PHP 中的應用。始終記得,當處理數據庫操作時使用 PDO 類能夠大大提高代碼的安全性和質量。