打印文档 PRINT FILE

PDO的基本使用方法


PHP PDO(PHP Data Objects)是一个数据库访问层,提供了一个数据访问抽象层,允许你使用各种数据库,而无需编写特定于数据库的代码。以下是PDO的详细用法概述:

1. 连接到数据库
首先,你需要使用PDO的构造函数来创建一个数据库连接。

php
<?php 
try { 
  $pdo = new PDO(mysql:host=localhost;dbname=testdb, username, password); 
  // 设置 PDO 错误模式为异常 
  $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
  echo "Connected successfully"; 
} catch(PDOException $e) { 
  echo "Connection failed: " . $e->getMessage(); 

?>
2. 准备和执行SQL语句
使用prepare()方法准备SQL语句,并使用execute()方法执行它。对于带有参数的SQL语句,你可以使用占位符(通常是:name)并在执行时使用bindParam()或bindvalue()方法绑定值。

php
<?php 
// ... 假设你已经有了$pdo连接 ... 
 
try { 
  $stmt = $pdo->prepare("INSERT INTO users (name, email) valueS (:name, :email)"); 
  $stmt->bindParam(:name, $name); 
  $stmt->bindParam(:email, $email); 
 
  // 插入一行 
  $name = "John Doe"; 
  $email = "john@example.com"; 
  $stmt->execute(); 
 
  // 插入另一行 
  $name = "Jane Doe"; 
  $email = "jane@example.com"; 
  $stmt->execute(); 
 
  echo "New records created successfully"; 
} catch(PDOException $e) { 
  echo "Error: " . $e->getMessage(); 

?>
3. 获取查询结果
对于SELECT查询,你可以使用fetchAll()或fetch()方法来获取结果。

php
<?php 
// ... 假设你已经有了$pdo连接 ... 
 
try { 
  $stmt = $pdo->query("SELECT * FROM users"); 
  while($row = $stmt->fetch(PDO::FETCH_ASSOC)) { 
    echo "Name: " . $row[name]. "<br>"; 
    echo "Email: " . $row[mail]. "<br><br>"; 
  } 
} catch(PDOException $e) { 
  echo "Error: " . $e->getMessage(); 

?>
4. 处理事务
PDO也支持事务处理。你可以使用beginTransaction()开始一个事务,使用commit()提交事务,或使用rollBack()回滚事务。

php
<?php 
// ... 假设你已经有了$pdo连接 ... 
 
try { 
  $pdo->beginTransaction(); 
 
  // 第一个SQL语句 
  $stmt = $pdo->prepare("INSERT INTO users (name, email) valueS (:name, :email)"); 
  $stmt->bindParam(:name, $name); 
  $stmt->bindParam(:email, $email); 
 
  $name = "John Doe"; 
  $email = "john@example.com"; 
  $stmt->execute(); 
 
  // 假设这里有一个错误导致你不想继续 
  // throw new PDOException(An error occurred); 
 
  // 第二个SQL语句 
  // ... 
 
  // 如果没有错误,提交事务 
  $pdo->commit(); 
  echo "New records created successfully"; 
} catch(PDOException $e) { 
  // 如果发生错误,回滚事务 
  $pdo->rollBack(); 
  echo "Error: " . $e->getMessage(); 

?>
5. 关闭连接
虽然PHP在脚本结束时会自动关闭数据库连接,但你也可以显式地关闭它,使用null来销毁PDO对象。

php
$pdo = null; // 关闭连接
注意:在实际应用中,请确保不要硬编码数据库凭据(如用户名和密码)。相反,使用环境变量、配置文件或其他安全方法来存储这些信息。