下面是详解PHP PDO简单教程的完整攻略。
PHP PDO简单教程
什么是PDO?
PDO(PHP Data Objects)是PHP 5.1引入的一个轻量级、可扩展的PHP数据访问层,它提供了一套相对比较统一的接口,使得开发者可以使用一套通用的编程方式来访问各种不同的数据库,如MySQL、SQLite、Oracle等等。
PDO的优点
- 支持多种数据库(MySQL、SQLite、Oracle等)。
- 支持预编译,避免SQL注入攻击。
- 支持事务处理。
- 支持对数据访问层的封装,代码可移植性更强。
- 支持错误处理。
- 更面向对象,易于使用和维护。
PDO的基本使用
连接数据库
使用PDO连接数据库的方法比较简单,只需要传入数据库的DSN(数据源名)、用户名和密码即可。示例如下:
try {
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');
} catch (PDOException $e) {
die('Error: ' . $e->getMessage());
}
这里的DSN用的是MySQL的格式,其中localhost表示连接本地数据库,test是要连接的数据库名称。如果连接成功,则会返回一个PDO对象,否则会抛出异常。
执行SQL语句
使用PDO执行SQL语句同样也比较简单,只需要调用PDO对象的query或exec方法即可。其中query方法用于查询操作,返回PDOStatement对象,而exec方法则用于非查询操作(如插入、更新、删除等),返回受影响的行数。示例如下:
// 查询操作
$stmt = $pdo->query('SELECT * FROM users');
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 非查询操作
$rowCount = $pdo->exec("INSERT INTO users (name, age) VALUES ('Tom', 20)");
这里的fetchAll方法将PDOStatement对象中的所有数据都取出来,以关联数组的方式返回。而pdo->exec返回受影响的行数。
预编译和执行语句
使用PDO预编译SQL语句并执行也非常简单,只需要使用PDO对象的prepare和execute方法即可。其中prepare方法用于预编译SQL语句,返回PDOStatement对象,而execute方法则用于执行预编译的语句。示例如下:
// 预编译SQL语句
$stmt = $pdo->prepare('SELECT * FROM users WHERE name = ? AND age > ?');
// 设置参数并执行预编译的语句
$name = 'Tom';
$age = 20;
$stmt->execute([$name, $age]);
// 取出数据
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
这里的占位符使用的是?
,通过execute方法传入的数组里的元素会按照先后顺序依次替换占位符,从而成为最终的SQL语句。另外,在使用PDO预编译SQL语句的过程中可以避免SQL注入攻击。
示例说明
以下是两个示例,一个是查询操作,一个是插入操作:
查询操作示例
try {
// 连接MySQL数据库
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// 使用PDO进行查询操作
$stmt = $pdo->query('SELECT * FROM users');
// 取出数据
$rows = $stmt->fetchAll(PDO::FETCH_ASSOC);
// 输出数据
foreach ($rows as $row) {
echo $row['id'] . ' ' . $row['name'] . ' ' . $row['age'] . "<br>";
}
} catch (PDOException $e) {
die('Error: ' . $e->getMessage());
}
插入操作示例
try {
// 连接MySQL数据库
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// 使用PDO进行插入操作
$sql = 'INSERT INTO users (name, age) VALUES (?, ?)';
$stmt = $pdo->prepare($sql);
// 设置插入的参数
$name = 'Tom';
$age = 20;
$stmt->execute([$name, $age]);
echo '插入成功';
} catch (PDOException $e) {
die('Error: ' . $e->getMessage());
}
以上就是详解PHP PDO简单教程的完整攻略。希望对你有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解PHP PDO简单教程 - Python技术站