Debian Linux 安裝 PHP, 然後要用此 PHP 去連 Oracle, 不過預設 Orace connect 是沒有編進 PHP 裡面的, 但是又不想要把 PHP 重新 make, 為了要維護方便, 所以就想辦法來把他編成 Modules, 在 Pecl 找到 oci8, 一切就方便多囉~
Debian 安裝 PHP Pecl oci connection
安裝 OCI8 步驟(安裝 PHP 連 Oracle Version 10.2.0.4 的 OCI 版本)
於 Oracle Database Instant Client 下載 Client/SDK (Version 10.2.0.4 Instant Client Package - Basic 和 SDK)
apt-get install php-pear php5-dev
mkdir -p /opt/oracle
cd /opt/oracle
unzip ~/oracle-instantclient-basic-10.2.0.4-1.i386.zip # instantclient_10_2
unzip ~/oracle-instantclient-devel-10.2.0.4-1.i386.zip # instantclient_10_2/sdk/
mv instantclient_10_2 instantclient
cd /opt/oracle/instantclient
ln -s libclntsh.so.10.1 libclntsh.so
ln -s libocci.so.10.1 libocci.so
pecl install oci8
問題: Please provide the path to ORACLE_HOME dir. Use 'instantclient,/path/to/instant/client/lib' if you're compiling against Oracle Instant Client [autodetect] :
輸入: shared,instantclient,/opt/oracle/instantclient
pecl 裝完後, so 檔會放置於: /usr/lib/php5/20060613+lfs/oci8.so, 此檔案就是 php oci8 extension 囉~
vim /etc/php5/conf.d/oci8.ini # 建立 oci8.ini 檔案(讓 apache 載入時讀取此 extension), 內容如下:
extension=oci8.so
/etc/init.d/apache2 reload
這樣子就完成 PHP OCI8 的安裝囉~
測試
vim oci.php
oci_connect();
?>
php oci.php # 執行
Warning: oci_connect() expects at least 2 parameters, 0 given in oci.php on line 2 # 看到這個就代表成功了~
Fatal error: Call to undefined function oci_connect() in oci.php- on line 2 # 看到這樣子就是沒裝好或沒設好.
寫個簡單的 Oracle Connect 的 Insert/Select 程式測試:
$dbh = oci_connect ('ACCOUNT', 'PASSWORD', '//10.0.0.1/DBNAME') or die('OCI Connect error');
$res = oci_parse($dbh, 'INSERT INTO "USERS"(ID, NAME, PASSWORD) VALUES(1, "admin", "admin_password")') or die('Insert error');
//$res = oci_parse($dbh, 'SELECT * FROM "USERS"') or die('Select user error');
oci_execute($res);
while ($row = oci_fetch_assoc($res)) {
foreach ($row as $item) {
echo $item . "\n";
}
}
?>
其它參考
其它附註
Oracle SQL Developer 設定
設定 Role 要選 default, 若選 sysdba, SQL 語法 SELECT Table 前就需要加 db name
DB insert 需要用 "單引號" 括起來(Oracle 認定的字串需要用 單引號 選起來), 雙引號是對分辨 Table name 大小寫用的.
相關
作者: Tsung
對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.檢視「Tsung」的全部文章