【问题标题】:Moving from mysql to mysqli or pdo? [closed]从 mysql 迁移到 mysqli 或 pdo? [关闭]
【发布时间】:2010-10-20 17:23:16
【问题描述】:

重复:mysqli or PDO - what are the pros and cons?

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

我已通读http://php.net/manual/en/mysqli.overview.php,似乎两者都适合我的需求,但无论哪种方式都不太适合。

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

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

谢谢。

【问题讨论】:

标签: php mysql pdo mysqli


【解决方案1】:

PDO 专业人士:

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

Mysqli Con 的:

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

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

如果上述论点都不影响你,那么根据语法、风格等选择你喜欢的库。

【讨论】:

    【解决方案2】:

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

    • 只需更改几处代码,您就可以扩展应用以使用其他数据库
    • PDO 库具有内置的大部分安全性

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

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        【解决方案4】:

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

        查看此处(向下滚动)以进行快速比较:
        PHP & MySQLi

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

        【讨论】:

          【解决方案5】:

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

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

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

          【讨论】:

            猜你喜欢
            • 2012-02-28
            • 2014-01-31
            • 2013-11-06
            • 2012-11-26
            • 2014-12-28
            • 1970-01-01
            • 1970-01-01
            • 2010-09-06
            • 1970-01-01
            相关资源
            最近更新 更多