在PHP的開發(fā)過程中,會需要連接數(shù)據(jù)庫。一般情況下我們用的是mysql數(shù)據(jù)庫,相信這個大家都很熟了,使用mysql_*函數(shù)就能操作mysql數(shù)據(jù)庫了。但是我們時候后也會用到Oraclel數(shù)據(jù)庫,畢竟Oracle比較安全。PHP提供了兩套函數(shù)與Oracle連接,分別是ORA_和OCI函數(shù)。其中ORA_函數(shù)略顯陳舊。OCI函數(shù)更新?lián)f更好一些。兩者的使用語法幾乎相差無幾。你的PHP安裝選項應(yīng)該可以支持兩者的使用。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),正鑲白企業(yè)網(wǎng)站建設(shè),正鑲白品牌網(wǎng)站建設(shè),網(wǎng)站定制,正鑲白網(wǎng)站建設(shè)報價,網(wǎng)絡(luò)營銷,網(wǎng)絡(luò)優(yōu)化,正鑲白網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競爭力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時我們時刻保持專業(yè)、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
代碼:
以系統(tǒng)為windowns為例,
1、先PHP.INI中的oracle擴(kuò)展也開啟了
PHP下php.ini(注意,有時是在windows目錄)修改下下
其中的
extension=php_oci8.dll 去掉前面的“;”號
extension=php_oracle.dll 去掉前面的“;”號
把php_oci8.dll 、和php_oracle.dll 文件復(fù)制到windwos的system32下
2、系統(tǒng)中應(yīng)當(dāng)有安裝ORCALE的系統(tǒng),然后配制遠(yuǎn)程ORACLE的的監(jiān)聽。就是你能用你配好的ORACLE系統(tǒng)訪問遠(yuǎn)程的數(shù)據(jù)庫。
{例:
在ORACLE安裝目錄下找到tnsnames.ora,然后按下面的例子配置一下
BASETEST 命名=
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = XX.XX.XX.XX服務(wù)器IP地址)(PORT = 1521端口))
)
(CONNECT_DATA = (SERVICE_NAME = masprod 實(shí)例ID))
)
}
3.在你的PHP網(wǎng)頁目錄下寫個測試連接的程序試試
?php
$dbconn=OCILogon("username","pwd","(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = [遠(yuǎn)程服務(wù)器IP])(PORT = 1515))
)
(CONNECT_DATA =
(SERVICE_NAME = [數(shù)據(jù)庫名字])
))");
if($dbconn!=false)
{
echo "連接成功";
if(OCILogOff($dbconn)==true)
{
echo "關(guān)閉連接成功!";//=這里有問題
}
}
else
{
echo "連接失敗";
}
?
首先你要在php.ini文件中找到
extension=php_oci8.dll 前面的注釋符號“;”去掉,使php能夠加載支持oracle的模塊;
下面的代碼是調(diào)試通過的,可直接使用的:
html
body
?php
$dbconn=OCILogon("root","pass","(DESCRIPTION=(ADDRESS=(PROTOCOL =TCP)(HOST=遠(yuǎn)程IP)(PORT = 1521))(CONNECT_DATA =(SID=GZXNCW)))");
if($dbconn!=false)
{
echo "連接成功";
if(OCILogOff($dbconn)==true)
{
echo "關(guān)閉連接成功!";
}
}
else
{
echo "連接失敗";
}
?
/body
/html
?php
$dbconn=oci_connect("你的賬號","你的密碼","你的數(shù)據(jù)庫名稱");//請把中文件設(shè)置為你的值;
$stmt=oci_parse($dbconn, "select * from scott.hallo");
oci_execute($stmt, OCI_DEFAULT);
echo $conn."----selecting\n\n";
while (oci_fetch($stmt))
{
echo ($conn."[".oci_result($stmt, "TEST")."]\n\n");
}
echo ($conn . "----done\n\n");
?
具體代碼如下:
?php
$ch = curl_init();
$timeout = 5;
curl_setopt ($ch, CURLOPT_URL, '');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
$file_contents = curl_exec($ch);
curl_close($ch);
echo $file_contents;
?
PHP 獨(dú)特的語法混合了C、Java、Perl以及PHP自創(chuàng)的語法。
它可以比CGI或者Perl更快速地執(zhí)行動態(tài)網(wǎng)頁。用PHP做出的動態(tài)頁面與其他的編程語言相比,PHP是將程序嵌入到HTML(標(biāo)準(zhǔn)通用標(biāo)記語言下的一個應(yīng)用)文檔中去執(zhí)行,
執(zhí)行效率比完全生成HTML標(biāo)記的CGI要高許多;
PHP還可以執(zhí)行編譯后代碼,編譯可以達(dá)到加密和優(yōu)化代碼運(yùn)行,使代碼運(yùn)行更快。