php如何利用PDO存取oracle資料庫的方法詳解

黄舟
發布: 2023-03-16 14:08:01
原創
4656 人瀏覽過

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的搭建可以參考這裡;

##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();
登入後複製

然後我們到頁面中去查看下打印出來的phpinfo信息,查看其中的pdo, pdo_oci和oci8模組的相關信息。

總結

參考&致謝

php5.3連接oracle的客戶端及pdo_oci模組安裝


#

在 CentOS 6.4 64 位元上安裝 PDO_OCI 和 OCI8 PHP 擴充功能

以上是php如何利用PDO存取oracle資料庫的方法詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板