phpextentions中將php_oci8打上勾。2、安裝的有" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

初學(xué)PHP——使用OCI連接Oracle

系統(tǒng) 2988 0

1、讓PHP支持OCI,只需如下幾步:

首先,安裝PHP的集成運(yùn)行環(huán)境,或者理解為服務(wù)器吧,我安裝的是名叫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打上勾。

初學(xué)PHP——使用OCI連接Oracle

?

初學(xué)PHP——使用OCI連接Oracle

?

?

2、安裝的有Oracle客戶端,并且在 Oracle 安裝配置文件, tnsnames.ora 文件,此文件路徑是安裝oracle的路徑,比如我本機(jī)的是

F:\oracle\product\10.2.0\client_1\NETWORK\ADMIN ? ,所連的 200 數(shù)據(jù)庫,其中的配置詳情如下:

200 =

? (DESCRIPTION =

??? (ADDRESS_LIST =

????? (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521))

??? )

??? (CONNECT_DATA =

????? (SERVICE_NAME = tongcard)

??? )

? )

?

?

?

?

以下是使用PHP的OCI得到db的方法,與上面的tnsnames.ora文件非常類似:

?

$db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port)) (CONNECT_DATA = (SID=$sid) (SERVER = DEDICATED) (SERVICE_NAME = $sname) ) )";

  

?

?

比照以上的兩片代碼可以發(fā)現(xiàn):

CONNECT_DATA = ? (SERVICE_NAME = tongcard)

CONNECT_DATA = (SID=$sid)

service_name 名為 tongcard, sid 就是 service_name 的值。

?

?

?下面是一個例子,驗證是否連接數(shù)據(jù)庫成功,因為想以最快速度驗證使用PHP的OCI連接數(shù)據(jù)庫成功,所以沒有寫HTML頁面,直接模擬了一個登錄,將所需要的參數(shù)以變量形式傳入。

<?php /* * To change this template, choose Tools | Templates * and open the template in the editor. */ //以下是變量(數(shù)據(jù)庫連接的配置) $host = "192.168.1.200"; $port = "1521"; $sid = "tongcard"; $sname = "tongcard"; $db_user = "tmp2120723"; $db_pwd = "ceshi"; //以下是模擬登錄,輸入的參數(shù)為用戶名和密碼。此處為了簡便沒有寫HTML頁面, //將user_pass作為輸入的值傳入,為了驗證連接數(shù)據(jù)庫是否成功。 $userName ='admin'; $user_pass ='123456'; $user_id = '01040010001.admin'; if (!($conn = connect_oracle2($host, $port, $sid, $sname, $db_user, $db_pwd))) {//是否得到數(shù)據(jù)庫鏈接 echo "connot connect the Oracle database"; exit; } $qry = "select * from tmp2120723.admin_users t where t.user_id=:userId and t.login_name = :loginName"; $sql = oci_parse($conn, $qry);//查詢轉(zhuǎn)換 oci_bind_by_name($sql, ":loginName", $userName, 32);//查詢語句$sql,條件所需要的參數(shù)loginName,值為$userName,長度為32.長度可以不寫 oci_bind_by_name($sql, ":userId",$user_id );//$sql查詢語句,所需要的參數(shù)userId,值 為$user_id變量的值, echo "<br/>"; oci_execute($sql);//執(zhí)行sql $row = array();//查詢都是返回array() while ($result = oci_fetch_array($sql, OCI_ASSOC)) {//使用oci_fetch_array函數(shù)遍歷 $row[] = $result;//轉(zhuǎn)成數(shù)組的結(jié)果集 foreach ($result as $key => $value) { if ($key == 'LOGIN_PASSWD') { if (md5($user_pass) == $value) {//密碼MD5后的值=從數(shù)據(jù)庫表中查詢出來的value echo "login success<br/>"; } else { echo "login failed <br/>"; } } } } //連接數(shù)據(jù)庫方法 function connect_oracle2($host, $port, $sid, $sname, $db_user, $db_pwd){ $db = " (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = $host)(PORT = $port)) (CONNECT_DATA = (SID=$sid) (SERVER = DEDICATED) (SERVICE_NAME = $sname) ) )"; $dbconn = ocilogon($db_user, $db_pwd, $db); return $dbconn; } ?>

  

?

運(yùn)行該文件,我是將此文件放入到wamp的D:\wamp\www\里面,其實這只是一個文件,并不是一個項目,最初為了驗證如果不將此文件直接放在wamp的www,而是放在一個文件夾里,該如何訪問,因此增加了一個testing的文件夾,將此文件放入到testing目錄下,我的文件名叫TestOne.php

準(zhǔn)備進(jìn)緒,開始訪問:

http://localhost/testing/TestOne.php

這里值得一提的是,PHP的訪問,在默認(rèn)為8080端口時,不需要在localhost后面加:8080,假如沒有testing文件夾,則直接是 http://localhost/TestOne.php

?

訪問結(jié)果:

初學(xué)PHP——使用OCI連接Oracle

?

?

初學(xué)PHP——使用OCI連接Oracle


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 铁岭市| 泰和县| 横山县| 沁水县| 桐庐县| 江永县| 西城区| 方城县| 中江县| 柳州市| 绩溪县| 达拉特旗| 犍为县| 绿春县| 三都| 佛山市| 城市| 双流县| 迁安市| 穆棱市| 江源县| 大余县| 桂阳县| 乐陵市| 永德县| 威海市| 天津市| 屏山县| 长宁县| 邮箱| 康乐县| 马公市| 清流县| 长白| 台中县| 砚山县| 景宁| 化州市| 永善县| 尼勒克县| 民丰县|