TypechoJoeTheme

至尊技术网

登录
用户名
密码

PHP连接MySQL数据库怎么做?PDO连接方式详解,php pdo连接mysql

2025-12-06
/
0 评论
/
1 阅读
/
正在检测是否收录...
12/06

正文:

在PHP开发中,数据库操作是必不可少的一部分,而MySQL作为最流行的关系型数据库之一,与PHP的搭配尤为常见。传统上,开发者使用mysql_mysqli_扩展进行连接,但随着PHP版本的更新,PDO(PHP Data Objects)因其安全性、跨数据库兼容性成为更推荐的方式。本文将手把手教你如何使用PDO连接MySQL,并完成基本操作。


一、为什么选择PDO?

  1. 安全性:PDO支持预处理语句(Prepared Statements),有效防止SQL注入。
  2. 跨数据库兼容:只需修改DSN(数据源名称),即可切换MySQL、PostgreSQL等数据库。
  3. 异常处理:PDO提供try-catch机制,便于调试错误。


二、PDO连接MySQL的步骤

1. 连接数据库

使用PDO连接MySQL需要构造DSN字符串,包含数据库类型、主机名、数据库名等信息。

  
// 配置数据库信息  
$host = 'localhost';  
$dbname = 'test_db';  
$username = 'root';  
$password = '123456';  

try {  
    // 创建PDO实例  
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);  
    // 设置错误模式为异常模式  
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);  
    echo "数据库连接成功!";  
} catch (PDOException $e) {  
    die("连接失败: " . $e->getMessage());  
}  
  • 关键点

    • mysql:host=$host;dbname=$dbname:DSN格式,指定数据库类型和名称。
    • setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION):开启异常捕获,避免静默失败。


2. 执行查询(增删改查)

查询数据(SELECT)
  
$stmt = $pdo->query("SELECT * FROM users");  
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {  
    echo "ID: " . $row['id'] . ", 姓名: " . $row['name'];  
}  
插入数据(INSERT)

推荐使用预处理语句防止SQL注入:

  
$sql = "INSERT INTO users (name, email) VALUES (?, ?)";  
$stmt = $pdo->prepare($sql);  
$stmt->execute(['张三', 'zhangsan@example.com']);  
echo "插入成功,ID: " . $pdo->lastInsertId();  
更新与删除

更新数据:

  
$stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");  
$stmt->execute(['李四', 1]);  

删除数据:

  
$stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");  
$stmt->execute([1]);  


三、PDO的高级用法

1. 事务处理

确保一组操作要么全部成功,要么全部回滚:

  
try {  
    $pdo->beginTransaction();  
    $pdo->exec("UPDATE account SET balance = balance - 100 WHERE user_id = 1");  
    $pdo->exec("UPDATE account SET balance = balance + 100 WHERE user_id = 2");  
    $pdo->commit();  
} catch (Exception $e) {  
    $pdo->rollBack();  
    echo "事务失败: " . $e->getMessage();  
}  

2. 获取结果模式

  • PDO::FETCH_ASSOC:返回关联数组。
  • PDO::FETCH_OBJ:返回对象形式。


四、常见问题与解决

  1. 连接报错:检查MySQL服务是否启动,或用户名密码是否正确。
  2. 中文乱码:在DSN中添加charset=utf8
  
   new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);  
   


结语

数据库操作PHP连接MySQLPDO连接PHP PDO教程
朗读
赞(0)
版权属于:

至尊技术网

本文链接:

https://www.zzwws.cn/archives/40463/(转载时请注明本文出处及文章链接)

评论 (0)