当前位置:Linux教程 - Oracle - oracle database access object

oracle database access object

 
Calling example:
<?
$conn = OCILogon("www_cec", "webchn99", "unicorn");
#or you can just inclued file like "include("modcec_OCI_conn.php3");"

$newOda= new ODA($conn);
#################
#or you can use login method like this
#$newOda-=new ODA();
#$newOda->Logon("www","99","corn");
###############################################
$newOda->CmdString=" update test set nouse='dfs' where login_name='guoyafeng'";
if(!$newOda->Execute()) {
echo $newOda->err;
}
else
{
echo $newOda->Rows;  #get the affected row number.
}
#or you can call execute like this####
/*
$newOda->Execute(" update test set nouse='dfs' where login_name='guoyafeng'");
*/
#############################

#the following demostrate the open method.
$newOda->Open("select * from test")) or die $newOda->err;

#Get data from RS
echo "count is" .$newOda->Rows;
for($i=0;$i<$newOda->Rows;$i++)
   for($j=0;$j<$newOda->Cols;$j++)
    {
       echo $newOda->RS[$i][$j];
       
       }


$newOda->Logoff();
?>
<?
/********************************************************************************#
#  File Name:ODA.php3                                                            #
#  Author:Guo Yafeng                                    #
#  Function: Oracle DB Access.                          #
#  Maint History:                                                                #
#         Sept 18,2000 first release.                                            #
#                                                                                #
#                                                                                #
#********************************************************************************/


/********************************************************************************#
#Object interface description:                                                   #
#  Properties:                                                                   #
#       conn                Connection Object                                    #
#       err_no              Error No                                             #
#       err                 Error Description                                    #
#       CmdString           SQL Statements to execute.                           #
#       Rows               Affected Rows.                                      #
#       RS                  Return value array.                                  
#      Cols                                                                                         #
#                                                                                #
#  Method:                                                                       #
#       Open                Execute the CmdString and return value               #
#       Execute             Execute the CmdString.                               #
#********************************************************************************/

   file://$conn = OCILogon("www_ce", "ceonline99", "wsgp");
  // $conn = OCILogon("www_cec", "webchn99", "unicorn");
//  if ($SERVER_NAME == "")
//          $SERVER_NAME = $HTTP_HOST;

class ODA
{
  


  
  function ODA($cn="") {

   if($cn!="")
    $this->conn=$cn;
    return TRUE;
  
  }
  
  function Logon($user,$pass,$db) {
  
    if(!($this->conn = OCILogon($user, $pass, $db))){
    
     $this->err_no=106;
     $this->err="Error 106: Failed to logon.";
     return FALSE;
    };
    
    return TRUE;
    
  }
  function Open($sql="") file://$this->CmdString
  {
     if($this->conn=="") {
        $this->err_no=100;
        $this->err="Error 100,Connection Object Required.";
        return FALSE;
      }
     
     if($sql=="" and $this->CmdString=="") {
        $this->err_no=101;
        $this->err="Error 101,SQL Statement Required.";
        return FALSE;
      }
     if($sql=="")
        $sql=$this->CmdString;
    if(!($cursor=OCIParse($this->conn,$sql))) {
       $this->err_no=102;
       $this->err="Server Internal Error: Failed to parse SQL Statement.";
       return FALSE;
    }
    
    if(!OCIExecute($cursor))  {
      $this->err_no=103;
      $this->err="Server Internal Error: Failed to execute SQL Statement.";
      return FALSE;
    }
    $this->Rows=0;
    while(OCIFetchInto($cursor,$this->RS[$this->Rows])){
    
      $this->Rows++;
      
     }
     $this->Cols=OCINumCols($cursor);

    if($this->Rows==0) {
    
     $this->err_no=104;
     $this->err="Warning: No rows affectted.RS result is not available.";
    }

     OCIFreeStatement($cursor);
     
     return TRUE;
  }
  
  
    function Execute($sql="") {
     if($this->conn=="") {
        $this->err_no=100;
        $this->err="Error 100,Connection Object Required.";
        return FALSE;
      }
    
     if($sql=="" and $this->CmdString=="") {
        $this->err_no=101;
        $this->err="Error 101,SQL Statement Required.";
        return FALSE;
      }
     if($sql=="")
        $sql=$this->CmdString;
    
    if(!($cursor=OCIParse($this->conn,$sql))) {
       $this->err_no=102;
       $this->err="Server Internal Error: Failed to parse SQL Statement.";
       return FALSE;
    }
   
    
    if(!OCIExecute($cursor))  {
      $this->err_no=103;
      $this->err="Server Internal Error: Failed to execute SQL Statement.";
      return FALSE;
    }
    $this->Rows=OCIRowCount($cursor);
    OCIFreeStatement($cursor);
    
    return TRUE;
  }
  function LogOff(){
  
  if(!OCILogoff($conn)){
    
    $this->err_no=105;
    $this->err="Server Internal Error: Failed to logoff database.";
    return FALSE;
   }
  return T