博客 / 詳情

返回

PHP7連接Oracle環境搭建及測試代碼

1、需要Java庫環境:
1)instantclient-basic-linux 以及 instantclient-sdk-linux解壓到相同目錄即可

// 特別注意百度搜索出的第一個Oracle中文官方地址就是個坑,無法完成下載
https://www.oracle.com/database/technologies/instant-client/linux-x86-64-downloads.html

2)編譯安裝oci8,可以直接通過pecl安裝:oci8官方安裝指導

pecl install oci8-2.2.0   // 注意php7需要的版本為2.2, php8需要的版本為3.0
// 安裝過程中需要輸入instantclient目錄,輸入格式如下:
instantclient,/path/to/instantclient_19_8,19.8
// 安裝完成後記得添加oci8.so到php.ini文件
extension=oci8.so

3)安裝pdo_oci支持

// 這個需要從源碼安裝,根據你本地安裝的php版本,去php官方下載對應的源碼([github](https://github.com/php/php-src))
cd ext/pdo_oci
./configure --with-pdo-oci=instantclient,/data1/oracle/instantclient_19_8,19.8

// 這個過程可能會遇到缺少一些庫,安裝對應的庫即可
extension=pdo-oci.so

4)PDO連接測試代碼

<?php
$tns = "
(DESCRIPTION =
    (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))
          (CONNECT_DATA =(SERVICE_NAME = databasename)
     )
)";

$db_username = "username";
$db_password = "password";
$db = "oci:dbname=";
try {
    $conn = new PDO($db.$tns.';charset=UTF8',$db_username,$db_password);
} catch(PDOException $e){
    echo ($e->getMessage());
}
$sql="SELECT * FROM test";
$ret = $conn->query($sql);
// 打印錯誤
print_r($conn->errorInfo());

5)連接Oracle查詢中文出現亂碼

// 連接時增加指定字符集即可
new PDO($db.$tns.';charset=UTF8',$db_username,$db_password);
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.