php连接oracle数据库

php

18-6-1 15:54:01

1.先安装一下oracle instant,把oci.dll所在的目录加入PATH环境变量里   (没好使!!)
或者直接安装oracle express  (ok!!!)
php_pdo_oci 依赖于oracle 的oci.dll


2.开启php_pdo_oci

修改php.ini   查看phpinfo();,如果没有出现的oci表明安装失败


3.测试

$tns = "  (DESCRIPTION =  (ADDRESS_LIST =  (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))  )  (CONNECT_DATA =  (SERVICE_NAME = XE)  )  )  "; $db_username = "guest"; $db_password = "guest"; try{ $conn = new \PDO("oci:dbname=".$tns,$db_username,$db_password); $sth = $conn->prepare('SELECT * from "user" '); $sth->execute(); $result = $sth->fetchAll(\PDO::FETCH_ASSOC); var_dump($result); }catch(PDOException $e){ echo ($e->getMessage()); }

由于我安装的是oracle express 所以SERVICE_NAME 是XE ,如果是完整版的则是ORCL.


4.PHP_PDO_OCI和PHP_OCI8的区别

从stackoverflow上查到,PHP_PDO_OCI是php官方开发的而且开源,PHP_OCI8则是oracle开发的。
PDO是php的数据库操作抽象层,而PHP_PDO_xxx是对应具体数据库的驱动。


5.如果是Linux可以用ldd 查看PHP_PDO_OCI是依赖哪个版本号的oci,可以安装对应版本号的instant client。
并把instant client中oci对应的路径加到 LD_LIBRARY_PATH中。