PHP PDO技术详解及案例讲解

2025-01-15 0 747

PHP PDO技术详解及案例讲解

引言

PDO(PHP Data Objects)是PHP中的一个轻量级数据访问抽象层,它提供了一个数据访问接口,无论使用哪种数据库,都可以使用统一的函数和方法来进行数据库操作。PDO支持多种数据库,包括MySQL、PostgreSQL、SQL Server、SQLite等。

连接到数据库

使用PDO连接数据库非常简单,可以通过创建PDO实例并传递DSN(数据源名称)、用户名和密码来实现。

try {
    $dsn = 'mysql:host=localhost;dbname=testdb';
    $username = 'root';
    $password = '';
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $username, $password, $options);
    echo "连接成功"; 
} catch (PDOException $e) {
    echo "连接失败: " . $e->getMessage();
}

执行查询

连接到数据库后,可以使用PDO对象的方法来执行SQL查询。常用的方法有`query()`和`exec()`。

  • `query()`方法用于执行SELECT语句,返回PDOStatement对象。
  • `exec()`方法用于执行INSERT、UPDATE、DELETE语句,返回影响的行数。
$stmt = $pdo->query("SELECT * FROM users");
while ($row = $stmt->fetch()) {
    echo $row['username'] . "
"; } $affected_rows = $pdo->exec("DELETE FROM users WHERE id = 1"); echo $affected_rows . " 行被删除";

预处理语句

预处理语句是PDO的一个重要特性,它可以有效防止SQL注入攻击。预处理语句首先编译SQL语句,然后将参数绑定到SQL语句中,最后执行SQL语句。

$stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username");
$stmt->bindParam(':username', $username);
$username = 'admin';
$stmt->execute();

while ($row = $stmt->fetch()) {
    echo $row['username'] . "
"; }

案例讲解

下面是一个完整的示例,展示了如何使用PDO连接到MySQL数据库,并查询用户信息。

 PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $username, $password, $options);
    echo "连接成功
"; // 查询用户信息 $stmt = $pdo->prepare("SELECT * FROM users WHERE username = :username"); $stmt->bindParam(':username', $user); $user = 'admin'; $stmt->execute(); while ($row = $stmt->fetch()) { echo "用户名: " . $row['username'] . "
"; echo "邮箱: " . $row['email'] . "
"; } } catch (PDOException $e) { echo "连接失败: " . $e->getMessage(); } ?>

PHP
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

本站尊重知识产权,如知识产权权利人认为平台内容涉嫌侵犯到您的权益,可通过邮件:8990553@qq.com,我们将及时删除文章
本站所有资源仅用于学习及研究使用,请必须在24小时内删除所下载资源,切勿用于商业用途,否则由此引发的法律纠纷及连带责任本站和发布者概不承担。资源除标明原创外均来自网络整理,版权归原作者或本站特约原创作者所有,如侵犯到您权益请联系本站删除

腾谷资源站 php PHP PDO技术详解及案例讲解 https://www.tenguzhan.com/7871.html

常见问题

相关文章

发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务