在web开发中,数据库是一个非常重要的组成部分。和其他编程语言一样,php语言也有很多种方式可以操作数据库。其中,pdo(php 数据对象)是 php 中操作数据库的常用方式之一,它提供了统一的、简单、灵活、安全的访问不同数据库系统的方法。本文就来介绍下php如何使用pdo操作数据库。
一、PDO的优点
使用PDO操作数据库的优点有如下:
二、使用PDO连接数据库
在开始使用PDO操作数据库之前,需要先进行数据库的连接。连接数据库的代码如下:
立即学习“PHP免费学习笔记(深入)”;
//设置数据库连接信息
$dsn = 'mysql:host=localhost;dbname=testdb';
$username = 'root';
$password = 'root';
$options = [
//错误模式:在发生错误时抛出异常
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
//默认返回关联数组
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
];
//创建PDO对象
$pdo = new PDO($dsn, $username, $password, $options);其中,$dsn表示数据库类型、主机名、数据库名等信息,$username表示用户名,$password表示密码,$options表示设置,比如设置错误模式、返回数据类型等。在连接数据库时,还可以设置其他选项,如:
$options = [
//设置字符集
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
//关闭持久连接
PDO::ATTR_PERSISTENT => false,
//设置超时时间
PDO::ATTR_TIMEOUT => 10,
//设置返回数据类型为对象
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_OBJ,
// 禁用预处理语句的模拟
PDO::ATTR_EMULATE_PREPARES => false,
];三、PDO实现增删改查操作
在连接数据库之后,就可以对数据库进行增删改查操作了。常用的操作包括:插入数据、更新数据、删除数据和查询数据。
使用PDO向数据库中插入数据的代码如下:
//插入数据
$sql = "INSERT INTO `users` (`name`,`age`,`email`) VALUES (:name,:age,:email)";
$name = 'Tom';
$age = 23;
$email = 'tom@example.com';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->bindValue(':age', $age);
$stmt->bindValue(':email', $email);
$stmt->execute();其中,$sql是插入数据的SQL语句,使用了参数绑定的方式,可以避免SQL注入攻击。bindValue()方法会将参数绑定到指定名称的占位符上,然后调用execute()方法将查询提交到数据库。
使用PDO更新数据的代码如下:
//更新数据
$sql = "UPDATE `users` SET `age` = :age WHERE `name` = :name";
$name = 'Tom';
$age = 24;
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->bindValue(':age', $age);
$stmt->execute();其中,$sql是更新数据的SQL语句,使用了参数绑定的方式,可以避免SQL注入攻击。bindValue()方法会将参数绑定到指定名称的占位符上,然后调用execute()方法将查询提交到数据库。
使用PDO删除数据的代码如下:
//删除数据
$sql = "DELETE FROM `users` WHERE `name` = :name";
$name = 'Tom';
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':name', $name);
$stmt->execute()其中,$sql是删除数据的SQL语句,使用了参数绑定的方式,可以避免SQL注入攻击。bindValue()方法会将参数绑定到指定名称的占位符上,然后调用execute()方法将查询提交到数据库。
使用PDO查询数据的代码如下:
//查询数据
$sql = "SELECT * FROM `users` WHERE `age` > :age";
$age = 20;
$stmt = $pdo->prepare($sql);
$stmt->bindValue(':age', $age);
$stmt->execute();
$rows = $stmt->fetchAll();其中,$sql是查询数据的SQL语句,使用了参数绑定的方式,可以避免SQL注入攻击。bindValue()方法会将参数绑定到指定名称的占位符上,然后调用execute()方法将查询提交到数据库。fetchAll()方法会将查询结果返回为一个多维数组。
由于PDO支持获取关联数组、数字数组和对象三种类型的结果,因此,在查询结果时,需要设置fetch获取的类型,例如:
//查询并获取关联数组 $rows = $stmt->fetchAll(PDO::FETCH_ASSOC); //查询并获取数字数组 $rows = $stmt->fetchAll(PDO::FETCH_NUM); //查询并获取对象数组 $rows = $stmt->fetchAll(PDO::FETCH_OBJ);
四、PDO实现事务处理
PDO支持事务处理,可以使用beginTransaction()、commit()和rollback()方法实现事务的提交和回滚操作。
try {
//开启事务
$pdo->beginTransaction();
//执行增删改操作语句
$pdo->exec($sql1);
$pdo->exec($sql2);
$pdo->exec($sql3);
//提交事务
$pdo->commit();
} catch (Exception $e) {
//回滚事务
$pdo->rollback();
}以上是使用PDO操作数据库的基本介绍,PDO操作数据库时需要注意的几点:
总之,使用PDO操作数据库是一种比较便捷和有效的方式,能够为Web应用程序提供强大的数据库访问能力。
以上就是PHP如何使用PDO操作数据库的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号