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