您好,登錄后才能下訂單哦!
本篇文章為大家展示了怎么在PHP中使用PDO訪問oracle數據庫,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
開發環境
RedHat(CentOS)6.7
PHP5.6
Oracle11g
php5.6的搭建可以參照這里;
Oracle在linux環境下的安裝可以參考這里
當然,你也可以不安裝整個oracle,而只安裝instant client來實現;如果是instant client的oracle連接步驟參見本篇博文最后的致謝部分。
在開始下面的步驟前,請務必確保以上的3個環境都正確配置可用。
安裝PDO_OCI
如果你是安裝的php5.6.31版本,似乎pdo_oci模塊已經自帶了;但是穩妥起見,我們重新安裝一遍。
下載并解壓縮
$ wget https://pecl.php.net/get/PDO_OCI-1.0.tgz $ tar -xvf PDO_OCI-1.0.tgz $ cd PDO_OCI-1.0
修改配置文件
更新目錄中的config.m4文件,使其適配Oracle11g
# 在第10行左右找到與下面類似的代碼,添加這兩行: elif test -f $PDO_OCI_DIR/lib/libclntsh.$SHLIB_SUFFIX_NAME.11.2; then PDO_OCI_VERSION=11.2 # 在第101行左右添加這幾行: 11.2) PHP_ADD_LIBRARY(clntsh, 1, PDO_OCI_SHARED_LIBADD) ;;
編譯
在當前目錄下執行
$ phpize
phpize類似于gcc命令,主要是用來生成php的外掛模塊。phpize是依賴于php-deval模塊的,如果命令無法執行,請自行利用yum安裝php-deval;
你可以通過下面的命令檢查下是否已經安裝:
$ rpm -qa | grep php
查看是否有php56w-deval-5.6.xxx,如果沒有,請yum install php56w-deval來安裝。
安裝
phpize命令執行之后,會在目錄下生成很多文件,其中包括configure等我們常見的linux下通過源碼安裝應用的標準文件,依次執行下面的命令:
$ ./configure $ make && make install
這里一般會遇到一個問題,在make的時候會提示在pdo_oci.c文件中:
pdo_oci.c:34: error: expected ‘=', ‘,', ‘;', ‘asm' or ‘attribute' before ‘pdo_oci_functions'
解決辦法是修改pdo_oci.c文件的第34行,把function_entry修改成zend_function_entry,保存后重新make就可以了。
創建ini文件
成功之后,會提示已經在/usr/lib64/php/modules目錄下生成了pdo_oci.so模塊,我們要做的就是告訴php,我們要引用這個模塊。
在/etc/php.d目錄下新建一個ini文件:pdo_oci.ini,內容:
extension=pdo_oci.so
到這里,pdo_oci模塊就安裝完成了,我們可以通過php -m | grep oci來查看。
安裝OCI8
接下來就是安裝oci8模塊。
下載并解壓縮
依次在命令行中執行下面的命令:
$ wget https://pecl.php.net/get/oci8-2.0.8.tgz $ tar -xvf oci8-2.0.8.tgz $ cd oci8-2.0.8
編譯和安裝
步驟和上面pdo_oci是類似的:
$ phpize $ ./configure --with-oci8=shared $ make && make install
創建ini文件
同樣的,我們在/etc/php.d目錄下創建oci8.ini,內容:
extension=oci8.so
重啟Apache
別忘記重啟一下apache服務器來重新加載php的模塊:
$ service httpd restart
我們可以通過在網站目錄下創建一個test.php文件,文件中的內容是:
<?php phpinfo();
上述內容就是怎么在PHP中使用PDO訪問oracle數據庫,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。