我注意到很多人正在使用或迁移到 pdo,我以前从未使用过,我真的很不愿意改变它,反正我仍然没有改变,但我想从使用 pdo 的人那里知道每天为什么我应该改变它,我的意思是它比 mysql_* 或 mysqli_* 有什么优势,我已经用谷歌搜索了很多,但我还没有找到满意的答案。谢谢
3 回答
这不是用一个应用程序支持多个数据库(尽管你可以,但要小心)。这不是为了让将来更改数据库变得容易(尽管它有帮助)。它是关于拥有一个一致的、合理的界面来使用,而不管数据库如何。这不仅有利于程序员(通过使他们的技能更广泛地适用)和项目(通过使程序员更容易参与),它还使得创建位于数据访问层之上一层的库变得更加容易。Perl 拥有 DBI 已有 20 年了,这绝对是一件好事。PDO 是一个非常相似的概念(实际上它至少窃取了 DBI 的一半接口)。
PDO 旨在支持对各种形式的 SQL 数据库的透明访问。它是 PHP 的所谓“数据访问抽象层”。
如果您将应用程序限制为仅使用 SQL99 标准查询,则上述情况在现实生活中应该是正确的;)。
对于即将构建新数据库扩展的扩展开发人员来说,PDO 也是一个可靠的接口。他们可以只写一个驱动程序dor PDO,并且可以使用PHP中众所周知的接口——PDO接口来访问数据库。
结论:
- PDO 旨在跨各种数据库类型在 PHP 中实现相似的数据库访问
- 如果使用 SQL99 标准查询,您可以更改数据库产品只是更改连接字符串
- PDO 是一个众所周知的数据库访问接口,可供扩展开发人员使用
PDO 使两个不同 DBMS 之间的迁移更容易。有些人还将它用于支持 PDO 支持的所有 DBMS 的应用程序。但请注意,这通常是一种错误的做法:如果您不太了解某个软件,您不应该对您的用户说您支持它,因为您会撒谎——因为您无法解决现实生活中的问题。
mysqli 不是抽象。它是一个快速可靠的 MySQL api,应该是首选。