PHP 連線 oracle資料庫(可遠端)的測試操作
4、第四步:檢測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)
//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
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>
4.上文中一直提示的SID 或者說oracle伺服器名稱什麼的真的好難懂,我是直接用了配置檔案中所顯示的名稱“orcl”,這個在你安裝軟體時,會有一個服務名稱的提醒,自己預設的orcl而已,估計些其他的名稱也是可以的。網上介紹的很亂
如果不知道怎麼操作,檢視學習文件是最正確的選擇,希望能幫到你。