PHP開發中,數據庫是不可避免的一部分。MySQL是PHP開發中使用最廣泛的數據庫,而PDO(PHP Data Objects)是PHP中常用的數據庫抽象層。在本文中,我們將了解PHP、MySQL和PDO的關系,以及PDO的基本用法。
假設我們有一個用戶表user,其中有id、username和password三列。我們可以使用PDO來進行查詢、插入、刪除和更新。以下是一些基本操作:
<?php
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
// 查詢
$query = $pdo->query("SELECT * FROM user");
while ($row = $query->fetch()) {
echo $row['id'] . ": " . $row['username'] . "<br>";
}
// 插入
$stmt = $pdo->prepare("INSERT INTO user (username, password) VALUES (?, ?)");
$stmt->execute(["admin", "123456"]);
// 刪除
$stmt = $pdo->prepare("DELETE FROM user WHERE id = ?");
$stmt->execute([1]);
// 更新
$stmt = $pdo->prepare("UPDATE user SET username = :username WHERE id = :id");
$stmt->execute(['username' => 'new_username', 'id' => 2]);
在上面的代碼中,我們首先創建了PDO的實例。然后使用PDO的query方法查詢了user表中的所有數據,并使用PDO的fetch方法遍歷結果集。接著,我們使用PDO的prepare方法準備好了一個INSERT語句,使用execute方法執行該語句,并傳遞了兩個占位符的值。類似地,我們還可以使用prepare和execute方法執行DELETE和UPDATE語句。
PDO還有很多其他的用法。例如,我們可以使用PDO的beginTransaction方法開啟一個事務,并使用commit和rollback方法提交或回滾事務。我們還可以使用PDO的lastInsertId方法獲取最后插入的記錄的id。
需要注意的是,PDO對SQL注入有良好的防護,它會自動將所有的參數值轉義,從而避免了SQL注入攻擊。因此,我們不必手動對參數值進行轉義。
總之,PDO是一個強大而靈活的數據庫抽象層,它提供了眾多的方法和功能,使我們能夠輕松地與數據庫進行交互。如果你是PHP開發者,那么你應該熟練掌握PDO的用法,以便更好地完成你的項目。
下一篇php mvc面試