php怎麼遠端連線oracle

2020-07-16 10:05:41

一、以下是基於 wampServer 的php 存取oracle資料庫的操作步驟:

第一步:讓PHP支援OCI

首先,安裝PHP的整合執行環境,網上有很多整合,我安裝的是WampServer的(具體的安裝方法也可以參考之前寫的另一篇文章),安裝好後,從安裝目錄中找到php.ini檔案,比如我原生的路徑是D:wampbinphpphp5.3.3,將php.ini中的php_oci8.dll的;去掉,也就是把注釋去掉,相當於可以使用php_oci8了。

1566379444444431.jpg

相關推薦:《php教學

第二步:然後wampserver執行後,將php>php extentions中將php_oci8打上勾

【其他的整合環境其實也是可以的,比如phpStudy,我們可以直接從php擴充套件的選項裡打勾對應的】。

w.jpg

第三步:oracle 資料庫檔案設定

對於安裝有Oracle用戶端的PC機,可以在Oracle安裝組態檔,tnsnames.ora檔案,此檔案路徑是安裝oracle的路徑,比如我本機的是

F:oracleproduct10.2.0client_1NETWORKADMIN ,所連的192.168.1.198資料庫,其中的設定詳情如下(如果顯示 127.0.0.1 預設為本機):

(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =  192.168.1.198)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

第四步:檢測oci8是否設定成功

1.一般情況下,開啟localhost即能顯示 phpinfo.php介面,裡面即為 php 資訊。可採用 「Ctrl+F」搜尋「oci」,檢視是否有對應的oci模組,當然有一點php基礎的完全可以直接存取自己編寫的檔案,記得裡面加入「echo phpinfo();」即可。

2.不要高興太早,走到這一步,至少我是查不到的對應資訊的,這時可以按照網上的一些建議,把php的ext目錄下的php_oci8.dll拷到system32目錄下

3.最後建議重新啟動服務,最好是重新啟動電腦(我在測試時發現,重新啟動服務沒用,有一次是無意中 重新整理出了oci擴充套件,所以如果操作方法沒錯,我建議進行重新啟動。)

二、程式碼測試遠端連線 orcal 資料庫(建議可用自己的oracle用戶端試著是否能連線對方的伺服器端,以保證操作的成功率)

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2015/12/7
 * Time: 16:25
 */
echo 'ff';
//進行連線資料庫的引數設定
$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);//如果去掉最後一個引數或者為「 」,預設連線本機
$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);
?>

(參考網友的一點說明)

兩種方式和oracle資料庫建立連結:

1.$conn = oci_connect('username','password',"(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=192.168.1.198)(PORT = 1521))
(CONNECT_DATA =(SID=orcl)))");
2.$conn = oci_connect('username','password','192.168.1.198/orcl');

有的時候第一種方式不行,使用第二種,裡面的幾個引數分別是使用者名稱、密碼、oracle服務地址,其中orcl是服務名(但在我的機器上,後者無法存取)

另外提供一種簡單的測試程式碼,相對而言,只是測試連線情況,更為方便:

<!DOCTYPE HTML>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>php語句結束符</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 "關閉連線成功!".'<br/>';//
    }
}
else
{
    echo "連線失敗".'<br/>';
}
?>
</body>
</html>

總結提示:

使你的php支援oracle,按照以下步驟即可:

1.安裝php環境,找一下appserv或者xampp,一鍵安裝,很方便。

2.把php的ext目錄下的php_oci8.dll拷到system32目錄下。

3.修改php.ini檔案中的設定,去掉 ;extention = php_oci8.dll,去掉前面的分號。

4.重新啟動apache。

注意:

1.有時候你並不會注意到的一點失誤會浪費很多時間,我還要提醒的是,請記得開啟oracle的服務監聽!!

2.請記得作為伺服器端的PC機,要關閉防火牆!!

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>

以上就是php怎麼遠端連線oracle的詳細內容,更多請關注TW511.COM其它相關文章!