PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)方法圖文詳解
本文實(shí)例講述了PHP遠(yuǎn)程連接oracle數(shù)據(jù)庫(kù)操作實(shí)現(xiàn)方法。分享給大家供大家參考,具體如下:
一.以下是基于 wampServer 的php 訪問oracle數(shù)據(jù)庫(kù)的操作步驟:
1、第一步:讓PHP支持OCI
首先,安裝PHP的集成運(yùn)行環(huán)境,網(wǎng)上有很多集成,我安裝的是WampServer的(具體的安裝方法也可以參考之前寫的另一篇文章),安裝好后,從安裝目錄中找到php.ini文件,比如我本地的路徑是D:\wamp\bin\php\php5.3.3,將php.ini中的php_oci8.dll的;去掉,也就是把注釋去掉,相當(dāng)于可以使用php_oci8了。
2、第二步:然后wampserver運(yùn)行后,將php>php extentions中將php_oci8打上勾
【其他的集成環(huán)境其實(shí)也是可以的,比如phpStudy,我們可以直接從php擴(kuò)展的選項(xiàng)里打勾對(duì)應(yīng)的】。
3、第三步:oracle 數(shù)據(jù)庫(kù)文件配置
對(duì)于安裝有Oracle客戶端的PC機(jī),可以在Oracle安裝配置文件,tnsnames.ora文件,此文件路徑是安裝oracle的路徑,比如我本機(jī)的是
F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN ,所連的192.168.1.198數(shù)據(jù)庫(kù),其中的配置詳情如下(如果顯示 127.0.0.1 默認(rèn)為本機(jī)):
(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.198)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = orcl) ) )
4、第四步:檢測(cè)oci8是否配置成功
①.一般情況下,打開localhost即能顯示 phpinfo.php界面,里面即為 php 信息??刹捎?“Ctrl+F”搜索“oci”,查看是否有對(duì)應(yīng)的oci模塊,當(dāng)然有一點(diǎn)php基礎(chǔ)的完全可以直接訪問自己編寫的文件,記得里面加入“
echo phpinfo();
”即可。②.不要高興太早,走到這一步,至少我是查不到的對(duì)應(yīng)信息的,這時(shí)可以按照網(wǎng)上的一些建議,把php的ext目錄下的php_oci8.dll拷到system32目錄下
③.最后建議重啟服務(wù),最好是重啟電腦(我在測(cè)試時(shí)發(fā)現(xiàn),重啟服務(wù)沒用,有一次是無意中 刷新出了oci擴(kuò)展,所以如果操作方法沒錯(cuò),我建議進(jìn)行重啟.)
二.代碼測(cè)試遠(yuǎn)程連接 orcal 數(shù)據(jù)庫(kù)(建議可用自己的oracle客戶端試著是否能連接對(duì)方的服務(wù)端,以保證操作的成功率)
<?php /** * Created by PhpStorm. * User: Administrator * Date: 2015/12/7 * Time: 16:25 */ echo 'ff'; //進(jìn)行連接數(shù)據(jù)庫(kù)的參數(shù)配置 $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.198)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl)))"; //phpinfo(); $conn = oci_connect('scott','tiger',$dbstr);//如果去掉最后一個(gè)參數(shù)或者為“ ”,默認(rèn)連接本機(jī) $stmt = oci_parse($conn, "select * from mono"); oci_execute($stmt); $nrows = oci_fetch_all($stmt, $results); if ($nrows > 0) { echo "<table border=\"1\">\n"; echo "<tr>\n"; foreach ($results as $key => $val) { echo "<th>$key</th>\n"; } echo "</tr>\n"; for ($i = 0; $i < $nrows; $i++) { echo "<tr>\n"; foreach ($results as $data) { echo "<td>$data[$i]</td>\n"; } echo "</tr>\n"; } echo "</table>\n"; } else { echo "No data found<br />\n"; } echo " $nrows Records Selected<br />\n"; oci_free_statement($stmt); oci_close($conn); ?>
(參考網(wǎng)友的一點(diǎn)說明)
兩種方式和oracle數(shù)據(jù)庫(kù)建立鏈接
1.
2.
有的時(shí)候第一種方式不行,使用第二種,里面的幾個(gè)參數(shù)分別是用戶名、密碼、oracle服務(wù)地址,其中orcl是服務(wù)名(但在我的機(jī)器上,后者無法訪問)
另外提供一種簡(jiǎn)單的測(cè)試代碼,相對(duì)而言,只是測(cè)試連接情況,更為方便:
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>php語句結(jié)束符</title> </head> <body> <?php $dbstr ="(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.11.102)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) (INSTANCE_NAME = orcl)))"; $dbconn=oci_connect('scott','tiger',$dbstr); if($dbconn!=false) { echo "連接成功".'<br/>'; if(OCILogOff($dbconn)==true) { echo "關(guān)閉連接成功!".'<br/>';// } } else { echo "連接失敗".'<br/>'; } ?> </body> </html>
總結(jié)提示:
使你的php支持oracle,按照以下步驟即可:
1.安裝php環(huán)境,找一下appserv或者xampp,一鍵安裝,很方便
2.把php的ext目錄下的php_oci8.dll拷到system32目錄下
3.修改php.ini文件中的配置,去掉 ;extention = php_oci8.dll,去掉前面的分號(hào)
4.重啟apache
注意:
1.有時(shí)候你并不會(huì)注意到的一點(diǎn)失誤會(huì)浪費(fèi)很多時(shí)間,我還要提醒的是,請(qǐng)記得打開oracle的服務(wù)監(jiān)聽?。?br />
2.請(qǐng)記得作為服務(wù)端的PC機(jī),要關(guān)閉防火墻??!
3.apache的配置文件同樣重要,修改httpd.conf文件,Deny——>Allow
<Directory /> Options FollowSymLinks AllowOverride None Order deny,allow # Deny from all Allow from all #允許所有訪問 Satisfy all </Directory> <Directory /> ... ... # Require local Options Indexes FollowSymLinks # onlineoffline tag - don't remove Order Deny,Allow Allow from all # Require local </Directory>
4.上文中一直提示的SID 或者說oracle服務(wù)器名稱什么的真的好難懂,我是直接用了配置文件中所顯示的名稱“orcl”,這個(gè)在你安裝軟件時(shí),會(huì)有一個(gè)服務(wù)名稱的提醒,自己默認(rèn)的orcl而已,估計(jì)些其他的名稱也是可以的。網(wǎng)上介紹的很亂
如果不知道怎么操作,查看學(xué)習(xí)文檔是最正確的選擇,希望能幫到你。
有的時(shí)候第一種方式不行,使用第二種,里面的幾個(gè)參數(shù)分別是用戶名、密碼、oracle服務(wù)地址,其中orcl是服務(wù)名。
# Require local
更多關(guān)于PHP相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《php+Oracle數(shù)據(jù)庫(kù)程序設(shè)計(jì)技巧總結(jié)》、《PHP+MongoDB數(shù)據(jù)庫(kù)操作技巧大全》、《PHP基于pdo操作數(shù)據(jù)庫(kù)技巧總結(jié)》、《php面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》、《php字符串(string)用法總結(jié)》、《php+mysql數(shù)據(jù)庫(kù)操作入門教程》及《php常見數(shù)據(jù)庫(kù)操作技巧匯總》
希望本文所述對(duì)大家PHP程序設(shè)計(jì)有所幫助。
- ThinkPHP5.0框架使用build 自動(dòng)生成模塊操作示例
- PHP生成隨機(jī)碼的思路與方法實(shí)例探索
- PHP實(shí)現(xiàn)網(wǎng)站應(yīng)用微信登錄功能詳解
- PHP之認(rèn)識(shí)(二)關(guān)于Traits的用法詳解
- ThinkPHP框架下微信支付功能總結(jié)踩坑筆記
- 微信公眾平臺(tái)開發(fā)教程④ ThinkPHP框架下微信支付功能圖文詳解
- 微信公眾平臺(tái)開發(fā)教程③ PHP實(shí)現(xiàn)微信公眾號(hào)支付功能圖文詳解
- ThinkPHP框架實(shí)現(xiàn)的微信支付接口開發(fā)完整示例
- 在Ubuntu 18.04上安裝PHP 7.3 7.2和7.0的方法
- PHP中str_split()函數(shù)的用法講解
相關(guān)文章
php學(xué)習(xí)筆記之mb_strstr的基本使用
這篇文章主要給大家介紹了關(guān)于php學(xué)習(xí)筆記之mb_strstr的基本使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。2018-02-02PHP實(shí)現(xiàn)JS中escape與unescape的方法
這篇文章主要介紹了PHP實(shí)現(xiàn)JS中escape與unescape的方法,通過json_encode和json_decode方法實(shí)現(xiàn)JS中escape與unescape函數(shù)的功能,需要的朋友可以參考下2016-07-07PHP code 驗(yàn)證碼生成類定義和簡(jiǎn)單使用示例
這篇文章主要介紹了PHP code 驗(yàn)證碼生成類定義和簡(jiǎn)單使用,結(jié)合實(shí)例形式分析了PHP code 驗(yàn)證碼生成類的基本功能定義、簡(jiǎn)單使用方法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05PHP入門教程之?dāng)?shù)學(xué)運(yùn)算技巧總結(jié)
這篇文章主要介紹了PHP入門教程之?dāng)?shù)學(xué)運(yùn)算技巧,結(jié)合實(shí)例形式總結(jié)分析了php數(shù)值運(yùn)算、變量檢測(cè)、隨機(jī)數(shù)、絕對(duì)值、取整、最大值、最小值、四舍五入等操作技巧,需要的朋友可以參考下2016-09-09PHP+JS實(shí)現(xiàn)批量刪除數(shù)據(jù)功能示例
這篇文章主要介紹了PHP+JS實(shí)現(xiàn)批量刪除數(shù)據(jù)功能,結(jié)合實(shí)例形式分析了php結(jié)合js控制頁面元素的選中與提交,以及php操作mysql實(shí)現(xiàn)批量刪除功能的相關(guān)實(shí)現(xiàn)技巧,末尾還附帶了一個(gè)php數(shù)據(jù)庫(kù)操作類,需要的朋友可以參考下2017-11-11php通過排列組合實(shí)現(xiàn)1到9數(shù)字相加都等于20的方法
這篇文章主要介紹了php通過排列組合實(shí)現(xiàn)1到9數(shù)字相加都等于20的方法,實(shí)例分析了php排列組合數(shù)學(xué)運(yùn)算的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-08-08php 指定范圍內(nèi)多個(gè)隨機(jī)數(shù)代碼實(shí)例
在php中生成隨機(jī)數(shù)據(jù)我們可以使用rand,mt_rand都可以生成指定范圍內(nèi)隨機(jī)數(shù)據(jù)了,下面給各位同學(xué)介紹一下方法2016-07-07php對(duì)字符串中的特殊符號(hào)進(jìn)行過濾的方法
有時(shí)候我們會(huì)遇到過濾字符串中特殊字符的問題,本文提供了三個(gè)處理特殊字符串的方法,文中通過代碼示例介紹的非常詳細(xì),具有一定的參考價(jià)值,需要的朋友可以參考下2023-11-11