Heim >Backend-Entwicklung >PHP-Tutorial >Betrieb der PHP-Klasseninstanz von Oracle
//[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
}
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
$$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
for($i=0;$i
}
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.