📜  PHP中的 PDO 是什么?

📅  最后修改于: 2022-05-13 01:56:15.192000             🧑  作者: Mango

PHP中的 PDO 是什么?

在本文中,我们将详细讨论PHP中的 PDO

有三个主要选项

PHP
getMessage() . "
";         die();     }     $count = $connect->exec("DELETE FROM employee WHERE emp_id = 123 ");     echo("Number of rows to be deleted from the employee table is: ". $count); ?>


PHP
getMessage() . "
";          die();      } ?>


PHP
query("SELECT * FROM students");
    $rows = $stm->fetchAll(PDO::FETCH_ASSOC);
    foreach($rows as $row) {
        printf("{$row['id']} {$row['name']}\n");
    }
?>


PHP
getMessage() . "
";         die();     }     $count = $connect->exec("DELETE FROM employee WHERE emp_id = 123 ");     echo("Number of rows to be deleted from the employee table is: ". $count); ?>


连接到MySQL数据库服务器。

  • MySQLi 程序
  • MySQLi 面向对象
  • PDO(PHP数据对象)

MySQLi 过程和 MySQLi 面向对象仅支持MySQL数据库,但 PDO 是一种高级方法,与MySQL一起支持 Postgres、SQLite、Oracle 和 MS SQL Server。

PDO比前两个选项更安全,并且与 MySQLi 过程和 MySQLi 面向对象相比也更快。

PDO是一个数据库访问层,它为PHP应用程序中的数据库访问和管理提供了一个快速且一致的接口。每个 DBMS 都有一个特定的 PDO 驱动程序,当您在PHP应用程序中使用 PDO 时必须安装该驱动程序。

它简化了数据库操作,包括:

  • 创建数据库连接
  • 执行查询
  • 处理错误
  • 关闭数据库连接

当我们想要连接PHP和 MySQL 时,我们需要遵循 3 个步骤:

  • 与数据库的连接
  • 运行 SQL 查询
  • 关闭数据库连接

使用 PDO 进行连接的步骤。

联系:

在这一步中,我们连接数据库

$conn = new PDO($db_name,$username,$password);

当我们想要使用PDO在PHP和 MySQL 之间建立连接时,我们需要创建一个PDO类的对象。

$db_name = "mysql:host=localhost;dbname:gfg";

注意: $db_name 包含以下信息。

运行 SQL 查询:要运行 SQL 查询,我们可以使用两种方法:

  • 询问():
$sql = $conn->query("select * from students");
  • 准备():
$sql = $conn->prepare("select * from students");

注意: prepare() 方法比 query() 方法更安全。

关闭连接:

用于使用 PDO 关闭数据库连接。

$conn = null;

参数:它包含以下参数。

  • dsn:它包含有关连接到数据库的信息。
  • user:包含用户名。
  • 密码:它包含数据库的密码。

返回值:

成功时,它将返回PDO 对象。如果失败,它将返回PDOException object

连接过程中的处理错误:

如果出现任何错误,将抛出PDOException 对象。我们可以捕获异常来处理错误。

PHP

getMessage() . "
";          die();      } ?>

输出:

Error : SQLSTATE[28000] [1045] 
Access denied for user 'roott'@'localhost' 
(using password: NO)

示例 1:假设我们有一个数据库“gfg”和一个表“students”。我们想要获取“学生”表中所有学生的“id”和姓名等详细信息。

PHP

query("SELECT * FROM students");
    $rows = $stm->fetchAll(PDO::FETCH_ASSOC);
    foreach($rows as $row) {
        printf("{$row['id']} {$row['name']}\n");
    }
?>

输出:

1  Student1
2  Student2
3  Student3
4  Student4

示例 2:在这种情况下,假设我们在“gfg”数据库中有“employee”表。我们想从“员工”表中删除“id = 123”的员工。

PHP

getMessage() . "
";         die();     }     $count = $connect->exec("DELETE FROM employee WHERE emp_id = 123 ");     echo("Number of rows to be deleted from the employee table is: ". $count); ?>

输出:

The number of rows to be deleted from the employee table is: 1

PDO 的好处:

  • 可用性: PDO 包含辅助函数来操作自动例行操作。
  • 可重用性:我们可以访问多个数据库,因为它提供了统一的 API。
  • 安全性:它提供保护 SQL 注入,因为它使用准备好的语句准备好的语句将 SQL 语句的指令与数据分开。
  • 错误处理:它使用异常进行错误处理。共有三种模式:
    • 无声
    • 警告
    • 例外
  • 多数据库支持:用于访问为 PDP 驱动程序编写的任何数据库。我们需要找到合适的驱动程序,并在使用时添加它们。有几个可用的 PDO 驱动程序,如 Microsoft SQL Server、Sybase、PostgreSQL 等等。

支持的数据库: PDO 支持 12 种不同的数据库。

  • MySQL
  • PostgreSQL
  • 甲骨文
  • 火鸟
  • 微软 SQL 服务器
  • 赛贝斯
  • Informix
  • IBM
  • 免费TDS
  • SQLite
  • 立方体
  • 4D