POD擴展是在PHP5中加入,該擴展提供PHP內建類別 PDO來對資料庫進行訪問,不同資料庫使用相同的方法名,解決資料庫連接不統一的問題。以下這篇文章主要跟大家介紹了PHP使用PDO存取oracle資料庫的步驟,需要的朋友可以參考下。
前言
PDO 從一開始就吸取了現有資料庫擴展成功與失敗的經驗教訓。因為 PDO 的程式碼是全新的,所以我們有機會重新開始設計效能,以利用 PHP 5 的最新特性。
PDO 旨在將常見的資料庫功能作為基礎提供,同時提供 RDBMS 獨特功能的方便存取。
雖然LAMP中PHP和Mysql是標準配對,但是公司的專案是Mysql和Oracle分別作為運行庫和詳單庫的,所以PHP連接oracle資料庫也是必須要實現的。本篇文章就介紹下如果透過PDO連接到oracle資料庫,下面話不多說了,來一起看看詳細的介紹吧。
開發環境
#也先說明我使用到的環境:
#RedHat(CentOS)6.7
PHP5.6
Oracle11g
#php5.6的搭建可以參考這裡;
安裝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
修改設定文件
# 在第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) ;;
#編譯
$ phpizephpize類似gcc指令,主要是用來產生php的外掛模組。 phpize是依賴php-deval模組的,如果指令無法執行,請自行利用yum安裝php-deval;
$ rpm -qa | grep php查看是否有php56w-deval-5.6.xxx,如果沒有,請yum install php56w-deval來安裝。
安裝
$ ./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檔案
extension=pdo_oci.so到這裡,pdo_oci模組就安裝完成了,我們可以透過php -m | grep oci來查看。
安裝OCI8
下載並解壓縮
#
$ wget https://pecl.php.net/get/oci8-2.0.8.tgz $ tar -xvf oci8-2.0.8.tgz $ cd oci8-2.0.8
編譯和安裝
$ phpize $ ./configure --with-oci8=shared $ make && make install
建立ini檔案
extension=oci8.so
重啟Apache
$ service httpd restart我們可以透過在網站目錄下建立一個test.php文件,檔案中的內容是:
<?php phpinfo();然後我們到頁面中去查看下打印出來的phpinfo信息,查看其中的pdo, pdo_oci和oci8模組的相關信息。
總結
參考&致謝
#
在 CentOS 6.4 64 位元上安裝 PDO_OCI 和 OCI8 PHP 擴充功能
以上是php如何利用PDO存取oracle資料庫的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!