一、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-hant/n/196992.html