一、PDO簡介
PDO(PHP Data Objects)是PHP的一個輕量級的、通用的數據訪問層,它提供了一個統一的介面來訪問不同類型的資料庫。與之前常用的mysql_*函數和mysqli_*函數相比,PDO具備更好的安全性、更好的性能,並且支持更廣泛的資料庫類型,包括MySQL、SQLite、Oracle、PostgreSQL等。
使用PDO連接MySQL資料庫需要以下參數:
– 資料庫主機名
– 資料庫名稱
– 資料庫用戶名
– 資料庫用戶密碼
二、PDO連接MySQL資料庫
下面是一個PDO連接MySQL資料庫的代碼示例:
try {
// 資料庫信息
$host = 'localhost';
$dbname = 'testdb';
$user = 'testuser';
$pass = 'testpass';
// 連接資料庫
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
// 設置錯誤模式為拋出異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo '連接資料庫失敗:' . $e->getMessage();
}
這段代碼嘗試連接名為testdb的MySQL資料庫,並且將錯誤模式設置為拋出異常。如果連接失敗,將輸出錯誤信息。
三、PDO查詢數據
在PDO中,查詢數據需要執行SQL語句,並且通過PDOStatement對象獲取查詢結果。下面是一個PDO查詢數據的代碼示例:
try {
// 資料庫信息
$host = 'localhost';
$dbname = 'testdb';
$user = 'testuser';
$pass = 'testpass';
// 連接資料庫
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
// 設置錯誤模式為拋出異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 查詢數據
$stmt = $pdo->query('SELECT name, age, gender FROM users');
// 獲取查詢結果
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 輸出查詢結果
foreach ($result as $row) {
echo "{$row['name']}, {$row['age']}, {$row['gender']}\n";
}
} catch (PDOException $e) {
echo '查詢數據失敗:' . $e->getMessage();
}
這段代碼查詢名為users的表中的所有數據,並且通過PDOStatement對象的fetchAll方法獲取查詢結果,最後遍歷查詢結果輸出每行數據的name、age、gender欄位。
四、PDO插入數據
在PDO中,插入數據需要執行SQL語句,並且通過PDOStatement對象獲取插入的行數。下面是一個PDO插入數據的代碼示例:
try {
// 資料庫信息
$host = 'localhost';
$dbname = 'testdb';
$user = 'testuser';
$pass = 'testpass';
// 連接資料庫
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
// 設置錯誤模式為拋出異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 插入數據
$stmt = $pdo->prepare('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)');
$result = $stmt->execute(array('Tom', 18, 'male'));
// 獲取插入的行數
$count = $stmt->rowCount();
echo "插入了 {$count} 行數據\n";
} catch (PDOException $e) {
echo '插入數據失敗:' . $e->getMessage();
}
這段代碼插入一行數據到名為users的表中,並且通過PDOStatement對象的rowCount方法獲取插入的行數。
五、PDO更新數據
在PDO中,更新數據需要執行SQL語句,並且通過PDOStatement對象獲取更新的行數。下面是一個PDO更新數據的代碼示例:
try {
// 資料庫信息
$host = 'localhost';
$dbname = 'testdb';
$user = 'testuser';
$pass = 'testpass';
// 連接資料庫
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
// 設置錯誤模式為拋出異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 更新數據
$stmt = $pdo->prepare('UPDATE users SET age = ? WHERE name = ?');
$result = $stmt->execute(array(20, 'Tom'));
// 獲取更新的行數
$count = $stmt->rowCount();
echo "更新了 {$count} 行數據\n";
} catch (PDOException $e) {
echo '更新數據失敗:' . $e->getMessage();
}
這段代碼更新名為users的表中Tom的age欄位為20,並且通過PDOStatement對象的rowCount方法獲取更新的行數。
六、PDO刪除數據
在PDO中,刪除數據需要執行SQL語句,並且通過PDOStatement對象獲取刪除的行數。下面是一個PDO刪除數據的代碼示例:
try {
// 資料庫信息
$host = 'localhost';
$dbname = 'testdb';
$user = 'testuser';
$pass = 'testpass';
// 連接資料庫
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
// 設置錯誤模式為拋出異常
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
// 刪除數據
$stmt = $pdo->prepare('DELETE FROM users WHERE name = ?');
$result = $stmt->execute(array('Tom'));
// 獲取刪除的行數
$count = $stmt->rowCount();
echo "刪除了 {$count} 行數據\n";
} catch (PDOException $e) {
echo '刪除數據失敗:' . $e->getMessage();
}
這段代碼刪除名為users的表中name欄位為Tom的行,並且通過PDOStatement對象的rowCount方法獲取刪除的行數。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/196992.html
微信掃一掃
支付寶掃一掃