PHP中的數據庫操作——DB
在開發Web應用程序的過程中,數據庫是不可或缺的一部分。而php db庫就是為了方便我們在PHP中與數據庫進行交互而開發的。
連接數據庫
要使用db庫,我們首先需要連接數據庫,這可以通過DB::connect來實現。下面是一個連接到mysql數據庫的例子:
require_once('DB.php'); $dsn = 'mysql://username:password@localhost/mydatabase'; $db = DB::connect($dsn); if (DB::isError($db)) { die($db->getMessage()); }
在這個例子中,$dsn保存的是數據庫的“數據源名稱”,其中包括用戶名,密碼,主機名和數據庫名稱等信息。DB::connect函數會返回一個Database Object(這是一個PEAR::DB類型的對象)。
執行SQL語句
有了連接就可以執行SQL語句了。下面是一個例子,查詢一個用戶的記錄
require_once('DB.php'); $dsn = 'mysql://username:password@localhost/mydatabase'; $db = DB::connect($dsn); if (DB::isError($db)) { die($db->getMessage()); } $sql = "SELECT * FROM user WHERE id = 1"; $result = $db->query($sql); if (DB::isError($result)) { die($result->getMessage()); } $record = $result->fetchRow();
在這個例子中,我們使用DB::query方法執行了一個SELECT語句,然后使用DB::fetchRow方法獲取了結果集中的第一行數據。注意,DB::query方法返回的是一個PEAR::DB_Result類型的對象,可以使用PEAR::DB_Result中的方法來訪問結果集中的數據。
執行更新操作
執行更新操作也很簡單,下面是一個例子:
require_once('DB.php'); $dsn = 'mysql://username:password@localhost/mydatabase'; $db = DB::connect($dsn); if (DB::isError($db)) { die($db->getMessage()); } $sql = "UPDATE user SET name = 'John' WHERE id = 1"; $result = $db->query($sql); if (DB::isError($result)) { die($result->getMessage()); }
在這個例子中,我們使用DB::query方法執行了一個UPDATE語句,將id為1的用戶的名字設置為John。注意,DB::query方法在執行更新操作時,返回的是受影響的行數。
使用預處理語句
為了避免SQL注入攻擊,我們可以使用預處理語句。下面是一個例子:
require_once('DB.php'); $dsn = 'mysql://username:password@localhost/mydatabase'; $db = DB::connect($dsn); if (DB::isError($db)) { die($db->getMessage()); } $sql = "SELECT * FROM user WHERE id = ?"; $stmt = $db->prepare($sql); if (DB::isError($stmt)) { die($stmt->getMessage()); } $result = $db->execute($stmt, array(1)); if (DB::isError($result)) { die($result->getMessage()); } $record = $result->fetchRow();
在這個例子中,我們使用了一個占位符(?)代替了具體的id值。然后我們使用DB::prepare方法生成一個prepared statement(數據綁定語句),并使用DB::execute方法執行它。DB::execute方法需要傳遞一個數組,其中包含與占位符對應的數據項。
總結
以上就是一些基本的db庫的用法。雖然可以直接使用PHP中的mysql、mysqli等庫來操作數據庫,但db庫更加靈活、安全,值得我們使用。