[PHP] 連線Oracle DB on Windows
本文最後更新於:2024年5月2日 晚上
註:這裡也有SQL Server(MsSQL)的連接方式
環境建置
一、安裝Oracle Instant Client(x64 Windows)
到此網頁下載「Basic Packge」
解壓縮到資料夾
新增環境變數
C:\instantclient_21_3
二、安裝PHP擴展
將「php_oci8_12c.dll」放入
/php/ext/
12c
代表Oracle版本將php.ini中的「;extension=oci8_12c」註解取消
重新啟動Apache或其他Web Server以重新載入php.ini的設定
PHP串接
一、 連線設定(CodeIgniter 3.1.10)
$host = '[SERVER_HOST]';
$port = '[SERVER_PORT]';
$service_name = '[SERVICE_NAME]';
$username = '[ACCOUNT]';
$password = '[PASSWORD]';
$config = array(
'hostname' => "$host:$port/$service_name",
'username' => $user,
'password' => $password,
'database' => '',
'dbdriver' => 'oci8',
'dbprefix' => '',
'pconnect' => FALSE,
'db_debug' => FALSE,
'cache_on' => FALSE,
'cachedir' => '',
'char_set' => $this->char_set,
'dbcollat' => $this->dbcollat,
'swap_pre' => '',
'encrypt' => FALSE,
'compress' => FALSE,
'stricton' => FALSE,
'failover' => array(),
'save_queries' => $this->save_queries
);
try {
$db = @$this->load->database($config, true);
if(empty($db->conn_id)) {
// 連接失敗
// 錯誤訊息
echo $db->error()['message'];
} else {
// 連接成功
}
} catch (Exception $e) {
// 連接時出現例外
// 例外訊息
echo $e->getMessage();
}
環境
- Windows 10
- Wamp Server 3.2.3
- PHP 7.4.9
- CodeIgniter 3.1.16
- Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
- instantclient_21_3
[PHP] 連線Oracle DB on Windows
https://hankz1108.github.io/posts/20231102-php-oracle-windows/