我想使用ORM,但遗憾的是我们的数据库(Oracle)没有稳定的PDO。 PHP页面声明PDO_OCI扩展名为“EXPERIMENTAL”,并警告不要使用它。
似乎Doctrine和Propel都需要PDO。其他Oracle / PHP商店在生产中使用ORM做什么?
答案 0 :(得分:3)
Doctrine 2 supports OCI8 out of the box
对于Doctrine 1.2,您必须implement your own connection class使用OCI8 extension(Oracle唯一有效支持的人)。有可能,你会在GitHub或googling for it找到一个自定义类。
至于Propel,Propel Newgroups中有一个条目要求它:
不幸的是,Propel需要PDO和PDOStatement作为参数 在整个API中,所以最好的选择是扩展PropelPDO和 使用oci8 PDOStatement并重新实现所需的方法。
和
理论上,您可以使用Propel 1.2.x,因为它使用oci8而不是 PDO_OCI。
答案 1 :(得分:1)
PDO_OCI扩展在技术上是“实验”,但是人们(包括我自己)的b'jillions(夸张)每天都在生产系统上使用它而没有问题。它超过6年,非常稳定。
答案 2 :(得分:0)
OCI8怎么样?
顺便说一下,您必须区分与DBMS通信的驱动程序和使用该驱动程序的ORM。