我工作的公司目前使用一些基本功能来抽象OCI库作为数据库连接的手段。我们正在考虑切换到PHP的PDO对象,但从一些快速搜索来看,看起来Oracle驱动程序比其他PDO驱动程序稍微不成熟。对于在生产环境中使用过PDO / oci8的人,我将不胜感激。
谢谢!
答案 0 :(得分:5)
我没有使用PDO驱动程序的个人经验(被标记为experimental已经足够甚至不考虑它)。但在The Underground PHP and Oracle Manual中,我们可以阅读以下内容,作为 PHP PDO扩展章节的前言:
PDO扩展和PDO_OCI驱动程序是开源的,包含在中 PHP 5.1起。 Oracle不会对PDO_OCI做出贡献。
PHP社区让PDO项目萎靡不振,Oracle建议使用 尽可能使用OCI8,因为它具有更好的功能集, 性能,可靠性和稳定性。 一般使用PDO_OCI 不推荐使用目的。
扩展未完成,可能维护得很差(尽管有些bug fixes偶尔会通过)并且这种情况已经存在多年了。我不会把鸡蛋放在那个篮子里。
答案 1 :(得分:4)
在我看来,Oracle对开发PDO的驱动程序并不感兴趣,它正在开发自己的驱动程序,让你接近oracle数据库...到oracle驱动程序......等等。)
据我所知,如果你可以应对最大值没有问题。 VARCHAR2 of 4000 CHARS的文本。如果您需要CLOB(和/或更大),请不要使用PDO_OCI。
我创建了一套类“PDOSurrogate”作为替代PDO与Oracle的替代品。 当PDO足够成熟时,我可以使用Refactor-> Rename将其更改为PDO。
答案 2 :(得分:0)
可能是我来不及参加聚会..只是想为讨论增添一些价值。我在OCI8和OCI8_11扩展方面经验丰富,并且使用存储过程/包,CLOB / BLOB和XML做了一些大量的工作量我从来没有用完选项..此外它看起来非常可靠并且可以处理大量负载而且我甚至使用过一次用于ETL(Extract Transform Load)应用程序来处理繁重的工作负载...也相信oci8是广泛使用的扩展...而不是pdo ..