1.先安裝一下oracle instant,把oci.dll所在的目錄加入PATH環境變量里
或者直接安裝oracle express
php_pdo_oci 依賴於oracle 的oci.dll
2.開啟php_pdo_oci
查看phpinfo();,如果沒有出現下面的oci表明安裝失敗
3.配置oracle,創建一個用戶表測試如:
4.測試
$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.
5.PHP_PDO_OCI和PHP_OCI8的區別
從stackoverflow上查到,PHP_PDO_OCI是php官方開發的而且開源,PHP_OCI8則是oracle開發的。
PDO是php的數據庫操作抽象層,而PHP_PDO_xxx是對應具體數據庫的驅動。
6.如果是Linux可以用ldd 查看PHP_PDO_OCI是依賴哪個版本號的oci,可以安裝對應版本號的instant client。
並把instant client中oci對應的路徑加到 LD_LIBRARY_PATH中。