Php pdo相对于mysql_*或mysqli的优势_*

Php pdo相对于mysql_*或mysqli的优势_*,php,mysql,pdo,Php,Mysql,Pdo,我注意到很多人正在使用或迁移到pdo,我以前从未使用过,我真的很不愿意改变,我仍然没有改变,但我想从每天使用pdo的人那里知道为什么我应该改变到pdo,我的意思是它比mysql_*或mysqli_*有什么优势,我在谷歌上搜索了很多,但还没有找到满意的答案。感谢PDO旨在支持对各种形式的SQL数据库的透明访问。它是PHP的所谓“数据访问抽象层” 如果您将应用程序限制为仅使用SQL99标准查询,那么在现实生活中上述情况应该是正确的;) PDO对于即将构建新数据库扩展的扩展开发人员来说也是一个可靠的接

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

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

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

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

结论:

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

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


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

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

      驱动程序支持和命名参数。我不认为我真的理解这一点,什么驱动程序或参数?你喜欢看手册或使用示例吗?你有什么特别的事情想在这里重新讨论吗?PDO不仅支持MySQL,还支持更多的数据库,它让您可以使用命名参数和关联数组来准备查询,而不是像使用
      mysqli
      那样到处使用
      。请注意,之前有人问过:更正,PDO是数据访问抽象层,而不是数据库抽象层。例如,PDO无法针对MySQL数据库为oracle本机数据库功能提供仿真。