gpt4 book ai didi

PHP| pear :MDB2 vs PDO vs Native-PHP (Raw)

转载 作者:可可西里 更新时间:2023-11-01 01:07:35 30 4
gpt4 key购买 nike

在通过 Internet(以及 Stackoverflow 此处)进行了某种研究之后 - 我仍在努力决定哪种方法最适合我在使用 PHP 编程时学习/使用和挖掘更多信息。

我理解在处理数据库时使用 DAO 比使用分布在应用程序文件中的直接 mysql_* 函数有一些优势。

当要在 MDB2 与 PDO 之间做出决定时 - 支持 PDO 的一件事是它不抽象 mysql_* 函数,它直接与 mysql api 对话,就像mysql_* 做。它也是 PHP 的编译 C 扩展,因此速度非常快。虽然 MDB2(或其他库)是用 PHP 编写的,因此它们需要在运行时进行解析并位于 mysql_* 函数之上。那么,就速度而言,PDO 胜出?!?

当谈到比较 DB 抽象层与 native-non-abstracted-PHP 方式时,数据库抽象层在使用 Binder 参数(准备好的语句)方面的安全优势可以防止大多数 sql 注入(inject)攻击,而且如果有需要/请求,将来更容易切换 RDBMS 类型 - 即使它是并不常见 -(那些 DAO 库中还有其他优势和耗时的特点)。

无论如何,我希望有专家可以帮助我决定我应该使用这些库中的一个,如果是的话,哪个是最推荐的?,或者我应该编写自己的 DAO 库来为我提供所有服务我的项目,会随着时间的推移得到改进吗?

谢谢。

最佳答案

问自己以下问题:

  • 瓶颈是我的代码还是数据库?当您对数据库执行数以千计的简单查询时,缓慢的 PHP 代码是一个问题。当您每个请求只执行几十个查询时,数据库层的开销可能不会引人注意
  • 您是否需要切换到不同的数据库系统?如果您正在为具有明确要求的客户工作,那么您很可能无论如何都会被 DMBS 锁定,并且您不必关心互操作性。

另外,MDB2 现在已经很老了。如果我是你,我会使用 Doctrines DBAL——它可以在没有 Doctrine 的情况下使用,并且它位于 PDO 之上。我不会使用旧的“本地”mysql_* 函数。

关于PHP| pear :MDB2 vs PDO vs Native-PHP (Raw),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7417784/

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