使用PDO实现PHP数据库操作,需通过预处理语句执行增删改查。1. 连接数据库时设置DSN和异常模式;2. 插入数据使用prepare与execute防止SQL注入;3. 查询用fetchAll或fetch获取结果;4. 更新和删除同样采用预处理绑定参数,确保安全。核心是始终使用预处理机制避免拼接SQL,保障应用安全。

PHP操作数据库最常见的是通过MySQL配合PDO或mysqli扩展来实现增删改查(CRUD)。下面以PDO为例,讲解如何安全、高效地完成数据库的基本操作。
1. 连接数据库
使用PDO连接MySQL数据库,推荐使用DSN方式,并设置错误模式为异常模式,便于调试。
$host = 'localhost';
$dbname = 'test_db';
$username = 'root';
$password = '123456';
<p>try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $username, $password);
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die("连接失败: " . $e->getMessage());
}</p>
注意:确保数据库字符集设为utf8或utf8mb4,避免中文乱码。
2. 插入数据(Create)
使用预处理语句防止SQL注入,是安全插入数据的关键。
立即学习“PHP免费学习笔记(深入)”;
$sql = "INSERT INTO users (name, email, age) VALUES (?, ?, ?)";
$stmt = $pdo->prepare($sql);
$name = '张三';
$email = 'zhangsan@example.com';
$age = 25;
<p>if ($stmt->execute([$name, $email, $age])) {
echo "插入成功,新ID:" . $pdo->lastInsertId();
}</p>
也可以使用命名占位符,提高可读性:

腾讯智影-AI数字人
73
基于AI数字人能力,实现7*24小时AI数字人直播带货,低成本实现直播业务快速增增,全天智能在线直播
73
查看详情
$sql = "INSERT INTO users (name, email, age) VALUES (:name, :email, :age)"; $stmt = $pdo->prepare($sql); $stmt->execute([':name' => $name, ':email' => $email, ':age' => $age]);
3. 查询数据(Read)
根据条件查询单条或多条记录,使用fetch或fetchAll获取结果。
// 查询所有用户
$sql = "SELECT * FROM users";
$stmt = $pdo->query($sql);
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
<p>foreach ($users as $user) {
echo "姓名:{$user['name']},邮箱:{$user['email']}<br>";
}</p><p>// 查询单条记录
$sql = "SELECT * FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$stmt->execute([1]);
$user = $stmt->fetch(PDO::FETCH_ASSOC);</p><p>if ($user) {
echo "找到用户:{$user['name']}";
} else {
echo "用户不存在";
}</p>
4. 更新数据(Update)
更新操作同样建议使用预处理语句,绑定参数防止风险。
$sql = "UPDATE users SET name = ?, email = ? WHERE id = ?";
$stmt = $pdo->prepare($sql);
$newName = '李四';
$newEmail = 'lisi@example.com';
$id = 1;
<p>if ($stmt->execute([$newName, $newEmail, $id])) {
echo "更新成功,影响行数:" . $stmt->rowCount();
}</p>
5. 删除数据(Delete)
删除操作要谨慎,务必确认WHERE条件准确。
$sql = "DELETE FROM users WHERE id = ?";
$stmt = $pdo->prepare($sql);
$id = 1;
<p>if ($stmt->execute([$id])) {
echo "删除成功,影响行数:" . $stmt->rowCount();
} else {
echo "删除失败";
}</p>
基本上就这些。掌握PDO的预处理机制和基本SQL语法,就能在PHP中安全实现数据库的增删改查。关键是始终使用prepare和execute,避免拼接SQL,提升应用安全性。
相关标签:
mysql php word 中文乱码 ai sql注入 邮箱 防止sql注入 php sql mysql mysqli pdo delete 数据库
大家都在看:
C++的静态链接和动态链接有什么区别_C++库链接方式与加载机制解析
C++如何使用Boost库_C++功能扩展与Boost常用组件介绍
composer怎么处理需要php-zip扩展的包_讲解如何处理依赖php-zip扩展的包
php-gd怎样裁剪图片_php-gd精确裁剪图片区域
composer install –no-autoloader有什么应用场景_解析–no-autoloader参数的使用场景
C++如何使用Boost库_C++功能扩展与Boost常用组件介绍
composer怎么处理需要php-zip扩展的包_讲解如何处理依赖php-zip扩展的包
php-gd怎样裁剪图片_php-gd精确裁剪图片区域
composer install –no-autoloader有什么应用场景_解析–no-autoloader参数的使用场景
本站资料仅供学习交流使用请勿商业运营,严禁从事违法,侵权等任何非法活动,否则后果自负!
THE END

































暂无评论内容