Warning: _oci_open_server: Error while trying to retrieve text for error ORA-12154 in oci8.inc on line 29
Warning: Supplied argument is not a valid OCI8-Connection resource in oci8.inc on line 39
Warning: Supplied argument is not a valid OCI8-Statement resource in oci8.inc on line 50
Warning: Supplied argument is not a valid OCI8-Statement resource in oci8.inc on line 145
Warning: Supplied argument is not a valid OCI8-Connection resource in oci8.inc on line 155
리눅스와 아파치에 오라클 8.0.5 이구여...PHP4를 사용하는데...
위와 같은 에러가 나네요...
혹시 처리해야 하는 방법을 아시는지 궁금해서요...
oci8.inc파일은 아래에...
===================================
<?php
/***********************************************************************
<클래스명>오라클 OCI8 클래스<클래스명>
<작성자>김성식</작성자>
<EMAIL>hellower@hotmail.com</EMAIL>
<HOMEPAGE>http://soback.kornet21.net/~corer/</HOMEPAGE>
<수정내역>1999/12/28 disconnect()</수정내역>
<수정내역>2000/03/28 var $storeDML</수정내역>
<수정내역>2000/05/07 freedescriptor()</수정내역>
<수정내역>2000/05/13 persistent connect 고려 재작성</수정내역>
************************************************************************/
class Oracle_OCI {
var $conn = FALSE;
var $stmt = 0;
var $abstractData= FALSE;
var $error= FALSE;
var $storeDML = "";
var $persistent=TRUE;
function connect($id="webmail",$passwd="aaron",$oracle_sid="ORCL") {
// 세번째 인수를 생략하면 BEQ 프로토콜로 접속, 명시하면 TCP 프로토콜 이용
if ($persistent) { // 영구 접속이면
$this->conn = OCIPLogon($id,$passwd,$oracle_sid);
}
else {
$this->conn = OCILogon($id,$passwd,$oracle_sid);
}
}
function serverVersion() {
return OCIServerVersion($this->conn);
}
function parse($qry) {
$this->storeDML=$qry;
$this->stmt=OCIParse($this->conn,$qry);
}
function parseExec($qry) {
$this->parse($qry);
$this->exec();
}
function exec($mode=OCI_DEFAULT) {
// OCI_DEFAULT : 매번 실행시마다 자동 commit가 되지 않도록 함.
OCIExecute($this->stmt,$mode);
$this->error = ocierror($this->stmt);
if($this->error) {
echo "<HR><FONT SIZE=2 COLOR=RED>".$this->storeDML."</FONT><BR>";
$this->disconnect();
}
}
/*
OCI_D_FILE
OCI_D_LOB
OCI_D_ROWID
*/
function newDescriptor($type) {
$this->abstractData = OCINewDescriptor($this->conn,$type);
}
function freeDescriptor() {
// OCIFreeDescriptor($this->abstractData); // depreciated!!
$this->abstractData->free();
}
function defineByName($upper,&$var) {
OCIDefineByName($this->stmt,$upper,&$var);
}
function bindByName($place_holder,&$var,$length) {
OCIBindByName($this->stmt,$place_holder,$var,$length);
}
/*
OCI_B_FILE(Binary File)
OCI_B_CFILE(Character-File)
OCI_B_CLOB(Character_LOB)
OCI_B_BLOB(Binary-LOB)
OCI_B_B_ROWID(ROWID)
*/
function bindByNameAbstract($place_holder,$type) {
OCIBindByName($this->stmt,$place_holder,&$this->abstractData,-1,$type);
return $this->abstractData;
// return &$this->abstractData; PARSE ERROR!
}
function fetch() {
return OCIFetch($this->stmt);
}
function result($i) { // 인덱스는 0이 아닌 1부터 시작
return OCIresult($this->stmt,$i);
}
function fetchInto(&$col,$mode=OCI_ASSOC) { // 클래스는 디폴트가 OCI_ASSOC
file://function fetchInto(&$col,$mode=OCI_NUM) {
return OCIFetchInto($this->stmt,&$col,$mode);
}
function fetchStatement(&$arr) {
return OCIFetchStatement($this->stmt,&$arr);
}
//////////////////////////////////////////////////////////
function numCols() {
return OCINumCols($this->stmt);
}
// $index 는 1 부터 시작
function columnName($index) {
return OCIColumnName($this->stmt,$index);
}
function columnisNULL($index) {
return OCIColumnIsNULL($this->stmt,$index);
}
function columnType($index) {
return OCIColumnType($this->stmt,$index);
}
function columnSize($index) {
return OCIColumnSize($this->stmt,$index);
}
function StatementType() {
return OCIStatementType($this->stmt);
}
function rowCount() {
return OCIRowCount($this->stmt);
}
///////////////////////////////////////////////
function parseFree() {
OCIFreeStatement($this->stmt);
}
function disconnect() {
if($this->error) {
OCIRollback($this->conn);
if (!$persistent) OCILogoff($this->conn);
die("<font color=red>ROLLBACK OCCURRED!! ".$this->error["message"]."</font>");
}
else {
OCICommit($this->conn);
if (!$persistent) OCILogoff($this->conn);
}
}
} // end class
//////// Object 생성 ////////////////////////////////
$oci = new Oracle_OCI;
////////////////////////////////////////////////////
?>
|