0

我用 mysqli 做所有事情。我正在为我构建的一个小系统添加功能,其中一些示例是 pdo。我正要转换为 mysqli 以匹配我的系统,但我意识到将我已经构建的内容更改为 pdo 可能会减少工作量。我一直在网上阅读有关 pdo vs mysqli 的信息。

但这是我的问题。我什么时候需要更多的mysqli?PDO 提供了 mysqli 没有的三个主要功能。十二个不同的驱动程序、命名参数和准备好的语句。

对于网络开发人员,我真的不需要能够使用超过 18 种数据库类型的网络应用程序。

我看到的唯一主要优势是准备好的陈述。

当我使用的唯一语言是 php 时,切换的主要原因是什么?php 现在甚至支持命名参数吗?

有没有办法使用 pdo 从选择中获取结果数量?

4

1 回答 1

1

你设法混淆了一切。

在你的声明中

  • mysqli提供本地准备好的语句支持
  • 命名参数实际上只是毫无目的地使您的代码膨胀。然而,它们很容易手动实现。有些人称为程序员,他们可以实际编程和实现他们需要的任何功能。
  • 十二个不同的驱动程序实际上是一个泡沫。它们中只有少数真正可行,您不能仅通过更改 DSN 来切换数据库。您需要更高级别的抽象,例如 ORM。

关于你错过的

  • mysqli 处理准备好的语句的方式对于新手来说确实太复杂了。
  • 事实上,mysqli 只是一个 API,不应该按原样使用,而只能作为更高级别驱动程序的源材料。
  • 但是它有很多特定于 mysql 的细节,在像 PDO 这样的通用驱动程序中显然不存在

所以,简而言之

  • 如果您要创建一个用于 mysql 的数据库抽象库 - 选择 mysqli。
  • 如果您使用 API 的唯一想法是直接在代码中调用它的方法 - 那么 PDO 是唯一的选择,因为它已经是一个半 DAL 并且它对准备好的语句的支持更容易使用。

关于你的其他问题

php 现在甚至支持命名参数吗?

PHP 与命名参数无关。

有没有办法使用 pdo 从选择中获取结果数量?

你不需要它。一旦你有了结果,你就可以简单地计算它们。

于 2013-08-07T05:41:42.187 回答