Everything I’ve read so far about PDO (PHP Data Objects) is almost too good to be true.
我每天都使用PDO,这是一个原因。我确实写了一个包装器,因为默认的PDO实例做了我不喜欢的事情(例如,默默地失败),API可能会更好一些。使用常量的配置不是我的默认方法。另外,我创建了一些方便的方法。
Its faster then mysql or mysqli.
是吗?我不知道你在哪里选择了这一点,这可能是真的,但是我没有听说PDO比本地MySQL库更快。
It has the same syntax for multiple database drivers.
有点。我使用PostgreSQL很多,代码与使用MySQL时不同。这是有道理的,因为PostgreSQL与命名序列一起工作,而MySQL使用“自动增量”,这是每个表的序列。 PDO无法抽象的数据库之间存在差异,即使只是用于数据库访问。
with prepared statements it is secure for sql injection.
你也可以prepare statements with mysqli,所以我不认为这是一个明确的上行空间。我通常使用准备好的语句,我喜欢PDO提供的字段语法。
But where are the disadvantages of PDO, something that has so many pros must also have a contra.
API对我来说不是直观的,我认为mysqli的API更有意义。然而,如果你自己写一个包装器,这是一个非常体面的图书馆。这是the wrapper I wrote使用PDO有点更加理智,还有更多的例子在互联网上漂流。
编辑:哦,安德森是对的,它具有差的Oracle支持。我不使用Oracle,所以我不认为这是一个巨大的缺点。