gpt4 book ai didi

php - 使用 PREPARE 命令(SQL)与 PDO 或 mysqli 函数

转载 作者:行者123 更新时间:2023-11-29 00:58:06 25 4
gpt4 key购买 nike

我使用 PHP 开发 Web 应用程序并使用 MySQL 作为数据库。我正在尝试了解准备好的语句的用法,并且只是迈出了我的第一步。

据我了解,准备好的语句主要用于:

  1. 提高查询效率(预解析、缓存执行计划、客户端和服务器之间的二进制数据传输)

  2. 确保免受代码注入(inject)攻击(对此不是很清楚,但我认为我有一个基本的了解)

(可能还有其他用途)

问题是,

为什么不直接使用 MySQL 提供的 PREPARE 语句并预先制作准备好的语句,然后在您的 PHP 应用程序(PDO 或 mysqli)中使用它们?更好的是,使用这些准备好的语句创建存储过程并仅将那些暴露给 PHP 程序员?

这样,进行正确查询的实际负担就由数据库程序员分开/处理了。 PHP 程序员可以完全专注于应用程序的实现和优化。

我没有预见到我会很快使用的数据库有任何变化。 MySQL 满足所有要求。但只是为了保持我的应用程序干净且与数据库无关,我可以使用 PDO。或者坚持过程编码,做mysqli

这是构建应用程序的有效/久经考验的方法吗?

谢谢

最佳答案

PREPARE 语句的结果有些特殊,不能返回给用户。当然,您可以通过将其存储在 MySQL 中的变量中来使用它。但是,这不是标准的。 MySQL 为您提供 API,以便 PDO 驱动程序使用它们,您可以编写与数据库无关的代码。我认为完全没有理由不这样做。在使用 PDO 的众多事物中,我特别喜欢 DBTNG (Drupal 7 DB 层分离)因为我参与了编写它 :) 和 idiorm .

关于php - 使用 PREPARE 命令(SQL)与 PDO 或 mysqli 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5029317/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com