php5.3 pear oci8,Debian 安裝設定 PHP 連 Oracle extension(OCI8)

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 大小寫用的.

相關

b636a9bf35d30f7781db075f241e6fb2?s=42&d=mm&r=g

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.檢視「Tsung」的全部文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值