999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

PHP連接Oracle數(shù)據(jù)庫的操作技巧

2009-12-31 00:00:00趙秀艷
考試周刊 2009年36期

摘要: 本文主要介紹了PHP連接Oracle數(shù)據(jù)庫過程中的常見問題,以及PHP、Oracle的配置環(huán)境,PHP操作Oracle數(shù)據(jù)庫的具體過程。

關(guān)鍵詞: PHPOracle數(shù)據(jù)庫操作技巧

一、配置環(huán)境

訪問Oracle 8以上的數(shù)據(jù)庫時(shí),我們需要用到Oracle 8 Call-Interface(OCI 8)。這個(gè)擴(kuò)展模塊需要Oracle 8的客戶端函數(shù)庫,因此要想連接遠(yuǎn)程Oracle數(shù)據(jù)庫,我們還需要安裝Oracle的客戶端軟件。(該客戶端軟件可以到Oracle網(wǎng)站http://www.oracle.com上免費(fèi)下載。)

我們可以這樣配置環(huán)境:首先,確認(rèn)安裝了Oracle 8i客戶端,然后用Net 8 Assistant(客戶端軟件提供)建立一個(gè)服務(wù)命名,注意服務(wù)名是Oracle數(shù)據(jù)庫的sid,可查詢initsid文件里的server_names得到。接著,在php.ini中把“;extension=php_oci8.dll”前面的注釋符號(hào)“;”去掉,使php能夠加載支持Oracle的模塊,并把“php_oci8.dll”拷貝到windows 2000 server安裝目錄下的system 32子目錄中,如“d:\\winnt\\system32”。最后,完成上述操作后,重新啟動(dòng)計(jì)算機(jī)。

二、用PHP操縱Oracle的LOB類型的數(shù)據(jù)

對(duì)PHP程序員來講,使用PHP操縱Oracle的LOB類型的數(shù)據(jù)時(shí),最令人頭痛的莫過于使用LOB處理圖片了。下面我分別介紹一下使用PHP操作BLOB和CLOB的一些技巧。

1.PHP操作BLOB

先建立一個(gè)表用于保存圖片,用戶上傳的圖片文件存放到BLOB中。

CREATE TABLE PICTURES (

ID NUMBER,IMGTYPE,VARCHAR2(60),

DESCRIPTION VARCHAR2(100),

PICTURE BLOB);

如果要實(shí)現(xiàn)ID的自動(dòng)增加,再建一個(gè)SEQUENCE:

CREATE SEQUENCE PIC_SEQ;

(1)PHP程序——插入部分:

$conn=OCILogon($username,$password,$sid);

在這里要注意兩點(diǎn):一是用EMPTY_BLOB()函數(shù)。這是Oracle的內(nèi)部函數(shù),返回一個(gè)LOB的定位符。在插入LOB時(shí),我們只能用這個(gè)辦法先生成一個(gè)空的LOB定位符,然后對(duì)這個(gè)定位符進(jìn)行操作。EMPTY_BLOB()函數(shù)是針對(duì)BLOB類型的,對(duì)應(yīng)于CLOB的是EMPTY_CLOB()。二是RETURNING后面的部分,將picture返回,讓PHP的OCI函數(shù)能夠處理。

$stmt=OCIparse($Conn,″INSERI INTO PICTURES Lid description,picture)

VALUES(pic-seq NEXTVAL,‘$description’,‘$Lob-uploodtype’,EMPTY_BLOB())

RETURNING picture INTO:PICTURE”);//生成一個(gè)本地LOB對(duì)象的描述符。

$lob=OCINewDescriptor($conn,OCI_D_LOB);

將生成的LOB對(duì)象綁定到前面SQL語句返回的定位符上。

OCIBindByName($stmt,′:PICTURE′,$lob,-1,OCI_B_BLOB);

OCIExecute($stmt);

LOB對(duì)象中存入數(shù)據(jù)。因?yàn)檫@里的源數(shù)據(jù)是一個(gè)文件,所以直接用LOB對(duì)象的Sawefile()方法。

(2)PHP程序——顯示部分(getpicture.php):

$conn=OCILogon($username,$password,$sid);

$stmt=OCIParse($conn,″SELECT imgtype,picture ID=$pictureid″);

if(OCIFetchInto($stmt,$result))

Header(″Content-type:″.$result);

echo $result->load();

}

可用strlen($result->load())查看圖片的大小以確定圖片是否正確存入到數(shù)據(jù)庫。

?>

2.PHP操作CLOB

Oracle有一種數(shù)據(jù)類型叫VARCHAR2,用來表示不定長(zhǎng)的字符串。VARCHAR2也是Oracle公司推薦使用的類型。但我們使用VARCHAR2時(shí)存在一個(gè)問題:最大只能表示4000個(gè)字符,也就相當(dāng)于2000個(gè)漢字。如果程序中某個(gè)字符串的長(zhǎng)度要大于2000個(gè)漢字,用VARCHAR2就不能滿足要求了。這時(shí)候,我們可以嘗試使用CLOB,CLOB和BLOB可以表示的最大長(zhǎng)度為4GB。

下面是示例(參考了PHP英文版的手冊(cè)):

要保存的文字

$clobtext=″different dr2″;

db connection

$conn=OCIlogon(″user″,″pw″,″TNS″);

這里原例子使用了一個(gè)存儲(chǔ)過程,我們也可以用上面操作BLOB的方法來實(shí)現(xiàn)。

如:$stmt=OCIParse($conn,″INSERT INTO table(id,clobtext) VALUES (text.NEXTVAL,,EMPTY_CLOB()) RETURNING clobtext INTO:clob″);

$sql=″begin tempclobtest_package.saveclob(:clob);end;″;

$clob=OCINewDescriptor($conn,OCI_D_LOB);

$stmt=OCIParse($conn,$sql);

OCIBindByName($stmt,′:clob′,$clob,-1,OCI_B_CLOB);

if(!OCIExecute($stmt,OCI_DEFAULT)){print_r(OCIError($stmt));}

else{echo″提交成功″;}

if($clob->save($clobtext))

{″OCICommit($conn);

echo″提交成功″;″}

else

{″print_r(OCIError($stmt));″}

釋放資源

$clob→ free();

OCIFree Statement($Stmt);

?>

以上是PHP連接Oracle數(shù)據(jù)庫操作過程中,我們經(jīng)常會(huì)遇到的兩個(gè)比較復(fù)雜的問題,在這里我作了詳細(xì)的介紹,希望經(jīng)過上述操作技巧的講解,能為大家解開一些困惑。

參考文獻(xiàn):

[1]Luke Welling.PHP和MySql Web開發(fā).北京:機(jī)械工業(yè)出版社,2009.

[2]陳營(yíng)輝.PHP+Ajax完全自學(xué)手冊(cè).北京:機(jī)械工業(yè)出版社,2008.

[3]李卓玲.Oracle大型數(shù)據(jù)庫及應(yīng)用.吉林:高等教育出版社,2004.

[4]曹俊.PHP完全自學(xué)手冊(cè).北京:清華大學(xué)出版社,2008.

主站蜘蛛池模板: 99视频国产精品| 亚洲九九视频| 亚洲性日韩精品一区二区| 超碰免费91| 中字无码精油按摩中出视频| 日韩精品无码一级毛片免费| WWW丫丫国产成人精品| 2021国产v亚洲v天堂无码| 免费99精品国产自在现线| 久久天天躁夜夜躁狠狠| 亚洲三级影院| av一区二区三区在线观看| 在线无码av一区二区三区| 国产在线精彩视频论坛| 国产高潮视频在线观看| 国产一区二区影院| 在线欧美国产| 91色国产在线| 免费看a级毛片| 亚洲午夜久久久精品电影院| 中文字幕在线免费看| 人妻一本久道久久综合久久鬼色| 国产啪在线| 伊人婷婷色香五月综合缴缴情| 免费人成又黄又爽的视频网站| 久久精品视频亚洲| 亚洲Aⅴ无码专区在线观看q| 亚洲日韩高清无码| 九九热免费在线视频| 久久福利网| 欧美日本在线播放| 成人中文在线| 亚洲专区一区二区在线观看| 国产美女精品在线| 亚洲国产成人在线| 国产91蝌蚪窝| 国产黑丝一区| 国产美女自慰在线观看| 亚洲伊人天堂| 爆乳熟妇一区二区三区| 亚洲日本精品一区二区| 欧洲高清无码在线| 亚洲精品成人7777在线观看| 91精品国产自产91精品资源| 91视频日本| 国产99在线| 五月天综合婷婷| 国产打屁股免费区网站| 99久久婷婷国产综合精| 99精品视频在线观看免费播放| 干中文字幕| 国产福利在线免费| 成人精品午夜福利在线播放 | 亚洲国语自产一区第二页| 萌白酱国产一区二区| 亚洲无线国产观看| 好吊色妇女免费视频免费| 亚洲精品无码久久毛片波多野吉| www亚洲天堂| 99视频在线观看免费| 免费人成网站在线观看欧美| 日韩免费毛片| 中国一级毛片免费观看| 激情亚洲天堂| 国国产a国产片免费麻豆| 久久国产亚洲偷自| 国产成人资源| 日本道综合一本久久久88| 女人av社区男人的天堂| 精品91视频| 综合天天色| 免费一级全黄少妇性色生活片| 国产福利微拍精品一区二区| 日韩AV手机在线观看蜜芽| 久久人搡人人玩人妻精品一| 久久性视频| 无码免费视频| 中文字幕中文字字幕码一二区| 欧美另类图片视频无弹跳第一页| 久草热视频在线| 久久精品亚洲中文字幕乱码| 青青草91视频|