12

重复:mysqli 或 PDO - 优点和缺点是什么?

我希望将网站从 mysql 迁移到 mysqli 或 pdo,主要作为学习工具,但如果可能的话,也可以提高性能。

我已经通读了http://php.net/manual/en/mysqli.overview.php,似乎两者都适合我的需要,但无论哪种方式都不会强烈倾斜。

该站点目前主要使用非面向对象的代码,但我确实有其他语言的 OO 经验。绝大多数查询都是简单的复杂选择语句,更新/插入很少。您认为对我自己的教育和这个特定网站最有用的是什么?

如果您需要任何其他信息,请告诉我。

谢谢。

4

5 回答 5

20

PDO 专业版:

  • 自 5.x 起原生于 PHP
  • 支持命名参数而不是数字索引的?
  • 同一个抽象库支持多个不同的 RDBM

Mysqli Con 的:

  • 在数据库中正确存储和检索大对象时存在问题。
  • 不支持命名参数。

否则,这两个库基本上是同一事物的不同风格。它们都具有引用参数的功能,并且都支持参数化查询。

如果上述论点都没有影响您,那么请根据其语法、样式等选择您喜欢的库。

于 2009-04-21T02:14:30.057 回答
9

我不相信PDO会给你带来任何性能提升,但它会给你带来以下两个非常有吸引力的长期好处:

  • 您只需更改一些代码即可扩展您的应用程序以使用其他数据库
  • PDO 库具有很多内置的安全性

如果您不了解 #1 和 #2 的好处,那么只需坚持使用久经考验的 mysql 库(尽管您至少在使用 mysql_real_escape_string,对吧)?

如果我正在学习一个新的 PHP 数据库库,我相信 PDO 是正确的选择,特别是如果您正在创建一个可以在您自己的服务器以外的各种系统上使用的 Web 应用程序。

于 2009-04-21T14:25:21.953 回答
8

来自http://www.php.net/manual/en/mysqli.overview.php

虽然 PDO 有它的优点,例如干净、简单、可移植的 API,但它的主要缺点是它不允许您使用最新版本的 MySQL 服务器中可用的所有高级功能。例如,PDO 不允许您使用 MySQL 对多语句的支持。

于 2011-10-14T18:43:54.230 回答
4

PDO 比其他 PDO 提供了更好的安全性,没有太多麻烦,但是对于过渡,我建议您迁移到 mysqli,因为它比 PDO 更快、更容易,并且大多数 api/syntax 与旧的 mysql 扩展完全相同

请参阅此处(向下滚动)以进行快速比较:
PHP & MySQLi

编辑:看起来与您之前阅读的链接相同,抱歉

于 2009-04-21T03:14:24.780 回答
1

在构建我的 ORM 和抽象库时,我使用 MySQLi 和 PDO 来查看哪个性能更好。MySQLi 更快 - 但不足以仅基于此做出选择。

MySQLi/MySQL/SQLite 或任何其他独立库在 PDO 上拥有的一件事是它们返回在结果中找到的行数,这通常有助于测试任何结果。同时,在 PDO 中,您可以 fetchAll() 结果并 count() 它们 - 或者在之前运行计数查询以查看结果数。所以你必须适应以不同的方式处理这个问题。

哦,我最终选择了 PDO 而不是 MySQLi。

于 2009-07-19T18:02:52.950 回答