使用MySQL PDO进行PHP开发

一、PDO简介

PDO(PHP Data Objects)是PHP的一个轻量级的、通用的数据访问层,它提供了一个统一的接口来访问不同类型的数据库。与之前常用的mysql_*函数和mysqli_*函数相比,PDO具备更好的安全性、更好的性能,并且支持更广泛的数据库类型,包括MySQL、SQLite、Oracle、PostgreSQL等。

使用PDO连接MySQL数据库需要以下参数:
– 数据库主机名
– 数据库名称
– 数据库用户名
– 数据库用户密码

二、PDO连接MySQL数据库

下面是一个PDO连接MySQL数据库的代码示例:

try {
    // 数据库信息
    $host = 'localhost';
    $dbname = 'testdb';
    $user = 'testuser';
    $pass = 'testpass';

    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    // 设置错误模式为抛出异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo '连接数据库失败:' . $e->getMessage();
}

这段代码尝试连接名为testdb的MySQL数据库,并且将错误模式设置为抛出异常。如果连接失败,将输出错误信息。

三、PDO查询数据

在PDO中,查询数据需要执行SQL语句,并且通过PDOStatement对象获取查询结果。下面是一个PDO查询数据的代码示例:

try {
    // 数据库信息
    $host = 'localhost';
    $dbname = 'testdb';
    $user = 'testuser';
    $pass = 'testpass';

    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    // 设置错误模式为抛出异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 查询数据
    $stmt = $pdo->query('SELECT name, age, gender FROM users');
    // 获取查询结果
    $result = $stmt->fetchAll(PDO::FETCH_ASSOC);

    // 输出查询结果
    foreach ($result as $row) {
        echo "{$row['name']}, {$row['age']}, {$row['gender']}\n";
    }
} catch (PDOException $e) {
    echo '查询数据失败:' . $e->getMessage();
}

这段代码查询名为users的表中的所有数据,并且通过PDOStatement对象的fetchAll方法获取查询结果,最后遍历查询结果输出每行数据的name、age、gender字段。

四、PDO插入数据

在PDO中,插入数据需要执行SQL语句,并且通过PDOStatement对象获取插入的行数。下面是一个PDO插入数据的代码示例:

try {
    // 数据库信息
    $host = 'localhost';
    $dbname = 'testdb';
    $user = 'testuser';
    $pass = 'testpass';

    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    // 设置错误模式为抛出异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 插入数据
    $stmt = $pdo->prepare('INSERT INTO users (name, age, gender) VALUES (?, ?, ?)');
    $result = $stmt->execute(array('Tom', 18, 'male'));

    // 获取插入的行数
    $count = $stmt->rowCount();
    echo "插入了 {$count} 行数据\n";
} catch (PDOException $e) {
    echo '插入数据失败:' . $e->getMessage();
}

这段代码插入一行数据到名为users的表中,并且通过PDOStatement对象的rowCount方法获取插入的行数。

五、PDO更新数据

在PDO中,更新数据需要执行SQL语句,并且通过PDOStatement对象获取更新的行数。下面是一个PDO更新数据的代码示例:

try {
    // 数据库信息
    $host = 'localhost';
    $dbname = 'testdb';
    $user = 'testuser';
    $pass = 'testpass';

    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    // 设置错误模式为抛出异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 更新数据
    $stmt = $pdo->prepare('UPDATE users SET age = ? WHERE name = ?');
    $result = $stmt->execute(array(20, 'Tom'));

    // 获取更新的行数
    $count = $stmt->rowCount();
    echo "更新了 {$count} 行数据\n";
} catch (PDOException $e) {
    echo '更新数据失败:' . $e->getMessage();
}

这段代码更新名为users的表中Tom的age字段为20,并且通过PDOStatement对象的rowCount方法获取更新的行数。

六、PDO删除数据

在PDO中,删除数据需要执行SQL语句,并且通过PDOStatement对象获取删除的行数。下面是一个PDO删除数据的代码示例:

try {
    // 数据库信息
    $host = 'localhost';
    $dbname = 'testdb';
    $user = 'testuser';
    $pass = 'testpass';

    // 连接数据库
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8", $user, $pass);
    // 设置错误模式为抛出异常
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    // 删除数据
    $stmt = $pdo->prepare('DELETE FROM users WHERE name = ?');
    $result = $stmt->execute(array('Tom'));

    // 获取删除的行数
    $count = $stmt->rowCount();
    echo "删除了 {$count} 行数据\n";
} catch (PDOException $e) {
    echo '删除数据失败:' . $e->getMessage();
}

这段代码删除名为users的表中name字段为Tom的行,并且通过PDOStatement对象的rowCount方法获取删除的行数。

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/196992.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-03 13:26
下一篇 2024-12-03 13:26

相关推荐

  • 如何修改mysql的端口号

    本文将介绍如何修改mysql的端口号,方便开发者根据实际需求配置对应端口号。 一、为什么需要修改mysql端口号 默认情况下,mysql使用的端口号是3306。在某些情况下,我们需…

    编程 2025-04-29
  • PHP和Python哪个好找工作?

    PHP和Python都是非常流行的编程语言,它们被广泛应用于不同领域的开发中。但是,在考虑择业方向的时候,很多人都会有一个问题:PHP和Python哪个好找工作?这篇文章将从多个方…

    编程 2025-04-29
  • Python操作MySQL

    本文将从以下几个方面对Python操作MySQL进行详细阐述: 一、连接MySQL数据库 在使用Python操作MySQL之前,我们需要先连接MySQL数据库。在Python中,我…

    编程 2025-04-29
  • PHP怎么接币

    想要在自己的网站或应用中接受比特币等加密货币的支付,就需要对该加密货币拥有一定的了解,并使用对应的API进行开发。本文将从多个方面详细阐述如何使用PHP接受加密货币的支付。 一、环…

    编程 2025-04-29
  • MySQL递归函数的用法

    本文将从多个方面对MySQL递归函数的用法做详细的阐述,包括函数的定义、使用方法、示例及注意事项。 一、递归函数的定义 递归函数是指在函数内部调用自身的函数。MySQL提供了CRE…

    编程 2025-04-29
  • MySQL bigint与long的区别

    本文将从数据类型定义、存储空间、数据范围、计算效率、应用场景五个方面详细阐述MySQL bigint与long的区别。 一、数据类型定义 bigint在MySQL中是一种有符号的整…

    编程 2025-04-28
  • 使用PHP foreach遍历有相同属性的值

    本篇文章将介绍如何使用PHP foreach遍历具有相同属性的值,并给出相应的代码示例。 一、基础概念 在讲解如何使用PHP foreach遍历有相同属性的值之前,我们需要先了解几…

    编程 2025-04-28
  • MySQL左连接索引不生效问题解决

    在MySQL数据库中,经常会使用左连接查询操作,但是左连接查询中索引不生效的情况也比较常见。本文将从多个方面探讨MySQL左连接索引不生效问题,并给出相应的解决方法。 一、索引的作…

    编程 2025-04-28
  • PHP获取301跳转后的地址

    本文将为大家介绍如何使用PHP获取301跳转后的地址。301重定向是什么呢?当我们访问一个网页A,但是它已经被迁移到了另一个地址B,此时若服务器端做了301重定向,那么你的浏览器在…

    编程 2025-04-27
  • CentOS 7在线安装MySQL 8

    在本文中,我们将介绍如何在CentOS 7操作系统中在线安装MySQL 8。我们会从安装环境的准备开始,到安装MySQL 8的过程进行详细的阐述。 一、环境准备 在进行MySQL …

    编程 2025-04-27

发表回复

登录后才能评论