一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - PHP教程 - PHP使用PDO訪問oracle數據庫的步驟詳解

PHP使用PDO訪問oracle數據庫的步驟詳解

2021-06-30 16:28Michael Lee PHP教程

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模塊已經自帶了;但是穩妥起見,我們重新安裝一遍。

下載并解壓縮

?
1
2
3
$ 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

?
1
2
3
4
5
6
7
8
# 在第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)
 ;;

編譯

在當前目錄下執行

?
1
$ phpize

phpize類似于gcc命令,主要是用來生成php的外掛模塊。phpize是依賴于php-deval模塊的,如果命令無法執行,請自行利用yum安裝php-deval;

你可以通過下面的命令檢查下是否已經安裝:

?
1
$ rpm -qa | grep php

查看是否有php56w-deval-5.6.xxx,如果沒有,請yum install php56w-deval來安裝。

安裝

phpize命令執行之后,會在目錄下生成很多文件,其中包括configure等我們常見的linux下通過源碼安裝應用的標準文件,依次執行下面的命令:

?
1
2
$ ./configure
$ make && make install

這里一般會遇到一個問題,在make的時候會提示在pdo_oci.c文件中:

?
1
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,內容:

?
1
extension=pdo_oci.so

到這里,pdo_oci模塊就安裝完成了,我們可以通過php -m | grep oci來查看。

安裝OCI8

接下來就是安裝oci8模塊。

下載并解壓縮

依次在命令行中執行下面的命令:

?
1
2
3
$ 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是類似的:

?
1
2
3
$ phpize
$ ./configure --with-oci8=shared
$ make && make install

創建ini文件

同樣的,我們在/etc/php.d目錄下創建oci8.ini,內容:

?
1
extension=oci8.so

重啟Apache

別忘記重啟一下apache服務器來重新加載php的模塊:

?
1
$ service httpd restart

我們可以通過在網站目錄下創建一個test.php文件,文件中的內容是:

?
1
2
<?php
phpinfo();

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

參考&致謝

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

Installing PDO_OCI and OCI8 PHP extensions on CentOS 6.4 64bit

原文鏈接:http://lipeng1667.github.io/2017/09/01/php_pdo_connect_to_oracle/

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: freefron性中国国产高清 | 99这里只有精品视频 | α级毛片 | 国产在视频 | 亚洲欧美日韩国产一区图片 | 青青青青青国产免费手机看视频 | 九九热在线免费观看 | 日本久久啪啪婷婷激情五月 | 欧洲vodafonewifi日本 | 91porny紧身翘臀 | 国产免费看视频 | 我的妹妹最近有点怪在线观看 | 碰91精品国产91久久婷婷 | 精品日韩欧美一区二区三区 | 视频一本大道香蕉久在线播放 | 兽操人| 性奶乳妇 | 短篇同学新婚h系列小说 | 色婷婷六月丁香在线观看 | 国产精品免费aⅴ片在线观看 | 天天快乐高清在线观看 | 亚洲好色网 | 色依依视频视频在线观看 | 操碰91| 国产一卡2卡3卡四卡精品网 | 国产射频放大器 | 天天性综合 | 成人嗯啊视频在线观看 | 国产亚洲人成网站在线观看不卡 | 大吊操| 九九热视频免费观看 | 91精品乱码一区二区三区 | 欧美精品日韩一区二区三区 | 青青草色 | 国产欧美又粗又猛又爽老 | 99精品在线免费 | 情缘免费观看完整版 | jk制服喷水 | 荡女淫春2古装 | 亚洲天堂色视频 | 欧美操屁股 |