Heim >Backend-Entwicklung >PHP-Tutorial >Betrieb der PHP-Klasseninstanz von Oracle

Betrieb der PHP-Klasseninstanz von Oracle

WBOY
WBOYOriginal
2016-08-08 09:33:431016Durchsuche

//[Warnung]: Bitte nicht ohne Erlaubnis ändern
//------------------------------------------------ -----------------------------------------
//------------------------------------------------ -----------------------------------------
//
// [Dateiname]: c_ora_db.inc
// [Funktion]: Öffentliche Oracle-Funktionsklasse
//
// [Datum der letzten Änderung]: 11.05.2001[cxx]
// [Variablendefinitionsregeln]: „C_“ = Zeichentyp, „I_“ = Ganzzahltyp, „N_“ = numerischer Typ, „L_“ = Boolescher Typ, „A_“ = Array-Typ
//------------------------------------------------ -----------------------------------------
//------------------------------------------------ -----------------------------------------
// ※db_logon() Datenbankverbindung öffnen
// ※db_query()                                                                                                                                    // ※db_change() Allgemeine Funktionen für Datenbankänderungen (Einfügen, Löschen, Aktualisieren)
// ※ db_insert () einfügen, aufrufen db_change () direkt
//      ※db_delete()                                                                                                                                                                                   Rufen Sie db_change() direkt über delete auf
// ※db_update()                                                                                                                                                                                                    // ※db_commit()                                                                                                                        // ※db_rollback() Transaktions-Rollback
// ※db_logoff() Trennen Sie die Datenbankverbindung
//------------------------------------------------ -----------------------------------------


Klasse c_ora_db
{

       
//------------------------------------------------ -----------------------------------------
// Variablendefinition
//------------------------------------------------ -----------------------------------------
var $C_user = ""; var $C_user var $C_passwd = ""; //Datenbankpasswort
var $C_db = ""; var $C_db //Datenbankname
var $I_linkID = 0;                                                                                                                                                              zu var $I_stmtID = 0; var $I_stmtID var $color =""; var $color =""; //Globale Farbe
//------------------------------------------------ -----------------------------------------
       


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_logon()
// Funktion: Datenbankverbindung öffnen
// Parameter: Keine
// Rückgabewert: Verbindungshandle (Ganzzahl)
//              Hinweis: Keine
//------------------------------------------------ -----------------------------------------
Funktion db_logon()
                                         $this->I_linkID = @OCILogon($this->C_user,$this->C_passwd,$this->C_db); If ($this->I_linkID == 0){AlertExit('Datenbankverknüpfung fehlgeschlagen, wenden Sie sich bitte an den DBA!');}
                                                                                                                               zurück                                                                                              return $this->I_linkID;                          }  
//------------------------------------------------ -----------------------------------------
                         
                         
//------------------------------------------------ -----------------------------------------
// Funktionsname: db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
// Funktion:
auswählen // Parameter: $C_sql SQL-Anweisung
// $ a_define soll gebunden werden. Array-Typ
// $ i_start Startet den Datensatz -1 und alle Datensätze der Abfrage
// $ i_END End Record
//         Rückgabewert: zweidimensionales Array ($A_rs)
//            Hinweis: Auf den Wert des entsprechenden Felds kann über die Zahlen 0,1,2... zugegriffen werden, oder auf den Wert des entsprechenden Felds kann auch durch Abfrage des Feldnamens
zugegriffen werden // Wenn Sie auf das Feld mit dem ersten Datensatznamen zugreifen können
//                 $I_start, $I_end sind Parameter, die beim Paging verwendet werden.
//------------------------------------------------ -----------------------------------------
Funktion db_query($C_sql,$A_define="",$I_start=-1,$I_end=-1)
                                If (!$C_sql){AlertExit("Unvollständige Parameter!");}//Parameter prüfen
                                                ​​​​//Verbindungserkennung
If ($this->I_linkID == 0){AlertExit('Datenbankverknüpfung fehlgeschlagen, wenden Sie sich bitte an den DBA!');}
                                                //Formaterkennung
           $this -> I_stmtID = OCiparse($this -> I_linkID,$C_sql);                                                   If (!$this -> I_stmtID){AlertExit('SQL-Formatfehler! Bitte wenden Sie sich an den Programmierer');}
                                                                    //Wenn das gebundene Feld nicht angegeben ist, holen Sie es aus der SQL-Anweisung
ab If($A_define=="")
           {
               $A_Cur = explosion("select",$C_sql);              $A_Cur = explosion("from",$A_Cur[1]);                $A_define = explosion(",",$A_Cur[0]);          }
                         
//Datenbanktabellenfelder binden
If(gettype($A_define) == "array") //Die Abfragespalte ist ein Array
                                      {
for($i=0;$i                                                                                  $A_define_up[$i] = trim(strtoupper($A_define[$i]));                                                                                                                for($i=0;$i                                                                 OcidefineByname ($ this -& gt; i_stmtid, "$ a_define_up [$ i]", & $ $ a_define [$ i]); // Bind
                                                                                                                         }
Elseif (trim ($ a_define) & lt; & gt; "") // Die Abfrageliste ist nur eine
                                      {
               $A_define_up = trim(strtoupper($A_define));               OCIDefineByName($this -> I_stmtID,"$A_define_up",&$$A_define);           }

​​​​//Führen Sie die gebundene SQL-Anweisung
aus If(!OCIExecute($this -> I_stmtID))
                                      {
echo "Ausführungsfehler:SQL-Fehler:$C_sql
"; >                   return false;
          }
                                                                                                                                                                                                                                                                                                         //Datensätze abrufen
While (OCIFetchInto($this -> I_stmtID,&$cur,OCI_ASSOC))
                                      {
//Alle gefundenen Datensätze abrufen
                 if ($I_start == -1)
                                                                If (gettype($A_define) == "array") //Die Abfragespalte ist ein Array
                                                                     für ($i=0;$i                                                                                          If ($cur[$A_define_up[$i]] <> $$A_define[$i])
                                                                                                                             $$A_define[$i] = $cur[$A_define_up[$i]];                                                                                                                                               }                             $A_rs[$lower][$i] = $$A_define[$i];                                                                                                                                                                  $A_rs[$lower][$i] = $$A_define[$i];                         $A_rs[$lower][$A_define[$i]] = $$A_define[$i];                            $A_rs[$lower][$A_define_up[$i]] = $$A_define[$i];                                                                                                                                                                                                                                 elseif (trim($A_define) <> "")                                                                                                                                                  elseif (trim($A_define) <>                                                                                                                                           If ($cur[$A_define_up] <> $$A_define)
                                                                                                                  $$A_define = $cur[$A_define_up];                                                                                                                                                                                                                                       $A_rs[$lower][0] = $$A_define;                                                                                                                                                        $A_rs[$lower][0] = $$A_define; durch                            $A_rs[$lower][$A_define_up] = $$A_define;                                                                                                                                                                                                                                                                                                                                                                         $lower;                                                                                                                                                                                  ​​​​​​ //Angegebene Datensätze abrufen (verwendet mit Paging)
If ($I_start <> -1)
                                                                If ($cnt >= $I_start)
                                                                                                                                                                             If ($I_end - $I_start <> 0)
                                                                                                                $I_end--;
                            if (gettype($A_define) == "array")
                            {
                                for($i=0;$i                                 {
                                    if ($cur[$A_define_up[$i]] <> $$A_define[$i])
                                    {
                                        $$A_define[$i] = $cur[$A_define_up[$i]];     
                                    }
                                    $A_rs[$lower][$i] = $$A_define[$i];                    //用数字访问
                                    $A_rs[$lower][$A_define[$i]] = $$A_define[$i];        //用小些访问
                                    $A_rs[$lower][$A_define_up[$i]] = $$A_define[$i];    //用大写访问
                                }
                            }elseif(trim($A_define) <> "")
                            {
                                if ($cur[$A_define_up] <> $$A_define)
                                {
                                    $$A_define = $cur[$A_define_up];     
                                }
                                $A_rs[$lower][0] = $$A_define;                    //用数字访问
                                                                                                                                                                                                $A_rs[$lower][$A_define] = $$A_define; Über $ a_rs [$ länger] [$ a_define_up] = $$ a_define;                                                                                                                                      } $niedriger ;
}anders                                                                                          BREAK; // Wenn $ i_end-$ i_start = 0 einen Datensatz anzeigt und aus der WHILE-Schleife
springt                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           //Ende der Weile                                                       //Handle freigeben und die Abfragedaten (ein zweidimensionales Array) zurückgeben
OCIFreestatement($this -> I_stmtID);
           return $A_rs;                                                                                                     } //Ende der Funktion
//------------------------------------------------ -----------------------------------------


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_change($C_sql,$A_bind)
// Funktion: Datenbankänderung
// Parameter: $C_sql SQL-Anweisung
// $ a_Bind, um das Feld zu binden. Array-Typ
//        Rückgabewert: Boolescher Wert
//                          Hinweis: Einfügen, Löschen und Aktualisieren sind üblich
//------------------------------------------------ -----------------------------------------
Funktion db_change($C_sql,$A_bind="")
{
If (!$C_sql){AlertExit("Unvollständige Parameter!");}//Parameter prüfen
                                                                    //Verbindungserkennung
          if($this -> I_linkID==""){      AlertExit("Unsere Datenbank ist ausgelastet, bitte versuchen Sie es später erneut!");}                                                                                                                            //Formaterkennung
           $this -> I_stmtID = OCIParse($this -> I_linkID,$C_sql);                                                         If (!$this -> I_stmtID){AlertExit('SQL-Formatfehler! Bitte wenden Sie sich an den Programmierer');}
                                                      ​​​​//Bindung
If(gettype($A_bind) == "array")
                                      {
for($i=0;$i                                                                 global $$A_bind[$i];                    $$A_bind[$i] = StripSlashes($$A_bind[$i]);                                                                                                                           $$A_bind[$i] =       .                                                   ​  $ $ A_bind [$ i] = Striplace ("" & lt;? "," & Lt;? ", $ $ A_bind [$ i]); // Filtern Sie das pHP-Zeichen
                                                                                                               for($i=0;$i                 OCIBindByName($this -> I_stmtID, ":$A_bind[$i]", &$$A_bind[$i], -1); //Binding
                                                                                                                         }
         elseif(trim($A_bind) <> "")                                                                                                                                                                 {
global $$A_bind;
                 $$A_bind = StripSlashes($$A_bind); $ $ A_bind = strplace ("" & lt;? "," & Lt;? ", $ $ A_bind); // pHP-Markierung herausfiltern
              OCIBindByName($this -> I_stmtID, ":$arrBind", &$$A_bind, -1);                                                                   }
                                                      ​​​​//Ausführen und prüfen, ob es erfolgreich ist
If(!OCIExecute($this -> I_stmtID,OCI_DEFAULT))
                                      {
echo "Ausführungsfehler:SQL-Fehler:$C_sql
"; >                   return false;
          }
                                                      /*//Gibt die Anzahl der betroffenen Zeilen zurück
global $I_changenum;
          $I_changenum = OCINumrows($this -> I_stmtID);*/
                                                      ​​​​ //Handle loslassen und den Wert
zurückgeben OCIFreeStatement($this -> I_stmtID);
          return true;
}  
//------------------------------------------------ -----------------------------------------


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_delete($C_sql)
// Funktion:
löschen// Parameter: C_sql SQL-Anweisung
//        Rückgabewert: Boolescher Wert
//           Hinweis: Diese Funktion dient nur der intuitiven Verwendung und ruft im Wesentlichen db_change()
auf //------------------------------------------------ -----------------------------------------
Funktion db_delete($C_sql)
{
          return $this -> db_change($C_sql); }  
//------------------------------------------------ -----------------------------------------


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_insert($C_sql,A_bind)
// Funktion:
einfügen // Parameter: C_sql SQL-Anweisung
// A_bind Bind
//        Rückgabewert: Boolescher Wert
//          Hinweis: Diese Funktion dient nur der intuitiven Verwendung und ruft im Wesentlichen db_change()
auf //------------------------------------------------ -----------------------------------------
Funktion db_insert($C_sql,$A_bind="")
{
          return $this -> db_change($C_sql,$A_bind); }  
//------------------------------------------------ -----------------------------------------


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_update($C_sql,A_bind)
// Funktion: update
// Parameter: C_sql SQL-Anweisung
// A_bind Bind
//        Rückgabewert: Boolescher Wert
//           Hinweis: Diese Funktion dient nur der intuitiven Verwendung und ruft im Wesentlichen db_change()
auf //------------------------------------------------ -----------------------------------------
Funktion db_update($C_sql,$A_bind="")
{
          return $this -> db_change($C_sql,$A_bind); }  
//------------------------------------------------ -----------------------------------------



//------------------------------------------------ -----------------------------------------
// Funktionsname: db_commit()
// Funktion: Transaktionseinreichung
// Parameter: Keine
//        Rückgabewert: Boolescher Wert
//              Hinweis: Keine
//------------------------------------------------ ---------------------------------------------
Funktion db_commit()
{
Return (Ocicommit ($ this- & gt; i_linkid));
}  
//------------------------------------------------ -----------------------------------------


//------------------------------------------------ -----------------------------------------
// Funktionsname: db_rollback()
// Funktion: Transaktions-Rollback
// Parameter: Keine
//        Rückgabewert: Boolescher Wert
//              Hinweis: Keine
//------------------------------------------------ ---------------------------------------------
Funktion db_rollback()
{
           return (OCIRollback($this->I_linkID)); }  
//------------------------------------------------ -----------------------------------------

       
//------------------------------------------------ -----------------------------------------
// Funktionsname: db_logoff()
// Funktion: Datenbankverbindung trennen
// Parameter: Keine
//        Rückgabewert: Boolescher Wert
//              Hinweis: Keine
//------------------------------------------------ ---------------------------------------------
Funktion db_logoff()
{
           return (OCILogoff($this->I_linkID)); }  
//------------------------------------------------ -----------------------------------------

       
//------------------------------------------------ -----------------------------------------
}
?>
Das Obige stellt die PHP-Klassenbeispiele für den Betrieb von Oracle vor, einschließlich des Inhalts. Ich hoffe, dass es für Freunde hilfreich ist, die sich für PHP-Tutorials interessieren.

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn