【问题标题】:Advantages of pdo over mysql_* or mysqli_* [duplicate]pdo 相对于 mysql_* 或 mysqli_* 的优势 [重复]
【发布时间】:2013-04-18 17:25:30
【问题描述】:

我注意到很多人正在使用或迁移到 pdo,我以前从未使用过,我真的很不愿意改变它,反正我仍然没有改变,但我想从那些人那里知道每天都使用 pdo 为什么我应该改成它,我的意思是它比 mysql_* 或 mysqli_* 有什么优势,我已经在谷歌上搜索了很多,但我还没有找到满意的答案。谢谢

【问题讨论】:

标签: php mysql pdo


【解决方案1】:

这不是用一个应用程序支持多个数据库(尽管您可以,但要小心)。这不是为了让将来更改数据库变得容易(尽管它有帮助)。它是关于拥有一个一致的、合理的界面,无论数据库如何。这不仅有利于程序员(通过使他们的技能更广泛地适用)和项目(通过使程序员更容易参与),它还使得创建位于一层的库更容易很多在数据访问层之上。 Perl 拥有 DBI 已有 20 年了,这绝对是一件好事。 PDO 是一个非常相似的概念(实际上它至少窃取了 DBI 的一半接口)。

【讨论】:

    【解决方案2】:

    PDO 旨在支持对各种形式的 SQL 数据库的透明访问。它是 PHP 的所谓“数据访问抽象层”。

    如果您将应用程序限制为仅使用 SQL99 标准查询,则上述情况在现实生活中应该是正确的;)。

    对于即将构建新数据库扩展的扩展开发人员来说,PDO 也是一个可靠的接口。他们可以只写一个驱动程序或 PDO 并且可以使用 PHP 中众所周知的接口 - PDO 接口访问数据库。

    结论:

    • PDO 旨在使 PHP 中跨各种数据库类型的数据库访问相似
    • 如果使用 SQL99 标准查询,只需更改连接字符串即可更改数据库产品
    • PDO 是一个众所周知的数据库访问接口,可供扩展开发人员使用

    【讨论】:

    • 更正,PDO 是数据访问抽象层,而不是数据库抽象层。例如,PDO 无法针对 MySQL 数据库提供 oracle 本地数据库功能的仿真。 us3.php.net/manual/en/intro.pdo.php
    【解决方案3】:

    PDO 使两个不同 DBMS 之间的迁移变得更加容易。有些人还将它用于支持 PDO 支持的所有 DBMS 的应用程序。但请注意,这通常是一种错误的做法:如果您不太了解某个软件,您不应该对您的用户说您支持它,因为您会撒谎——因为您无法解决现实生活中的问题。

    mysqli 不是抽象。它是一个快速可靠的 MySQL api,应该是首选。

    【讨论】:

      猜你喜欢
      • 2010-12-29
      • 1970-01-01
      • 1970-01-01
      • 2014-10-13
      • 2022-01-14
      • 1970-01-01
      • 2013-07-22
      • 2017-03-19
      • 2010-12-23
      相关资源
      最近更新 更多