Heim Backend-Entwicklung PHP-Tutorial So kapseln Sie Datenbankoperationen in PHP

So kapseln Sie Datenbankoperationen in PHP

Aug 08, 2016 am 09:33 AM
case gt nbsp test

Kapselung von Datenbankoperationen in PHP

Viele Aspekte des dynamischen Webdesigns umfassen Datenbankoperationen, aber manchmal erfordert der Wechsel zu anderen Backend-Datenbanken bei Bedarf eine große Anzahl von Programmänderungen. Dies ist eine mühsame, zeitaufwändige und fehleranfällige Aufgabe. Tatsächlich können wir Klassen in PHP verwenden, um Datenbankoperationen zu kapseln, sodass das geschriebene Programm Änderungen an der Hintergrunddatenbank mit sehr kleinen Änderungen abschließen kann.
Jetzt kapseln wir es in dbfz.inc und sein Design ist wie folgt:

class dbInterface{ var $dbID=1; //Wird verwendet, um die Datenbank für den aktuellen Vorgang zu bestimmen. Wenn dbID 1 ist, repräsentiert es MySQL, wenn es 2 ist, repräsentiert es SQL Server, und wenn es 3 ist, repräsentiert es ODBC oder andere.
var $dbHost; //Der Domänenname des Hosts, auf dem sich die Datenbank befindet
var $dbUsername; //Datenbankbenutzername
var $dbPassWord; //Benutzerpasswort
//Host-, Benutzernamen- und Passwortfunktionen festlegen
Funktion setParameter($host,$username,$password){
$this->dbUsername=$username; $this->dbHost=$host; $this->dbPassword=$password;
} //Datenbankfunktion beitreten
Funktion dbConnect(){
switch($this->dbID)
{
Fall 1;
return @mysql_connect($this->dbHost,$this->dbUsername,$this->dbPassword); Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}
//Schließe die Bibliotheksfunktion
Funktion dbClose($dataHandle){
switch($this->dbID)
{
Fall 1;
mysql_close($dataHandle);
Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}

//SQL-Anweisungsfunktion
ausführen Funktion dbQuery($dbName,$sql,$dbHandle){
switch($this->dbID)
{
Fall 1;
return @mysql_db_query($dbName,$sql,$dbHandle); Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}

//Rufen Sie die aktuelle Datensatzfunktion des SQL-Rückgabewerts
ab Funktion dbFetchrow($dataHandle,$offset=-1){
switch($this->dbID)
{
Fall 1;
@mysql_data_seek($dataHandle,$offset);
return @mysql_fetch_row($dataHandle);
Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}

//Funktion „Abgerufene Datensatznummer“ zurückgeben
Funktion dbNumrows($dataHandle){
switch($this->dbID)
{
Fall 1;
return @mysql_num_rows($dataHandle);
Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}

//Die Funktion zum Abrufen der Anzahl der Spalten zurückgeben
Funktion dbNumcols($dataHandle){
switch($this->dbID)
{
Fall 1;
return @mysql_num_fields($dataHandle);
Fall 2;
//Funktionen verwenden, die SQL Server
unterstützen Fall 3;
//Funktionen verwenden, die ODBC
unterstützen }
}
}

Hier ist die Gebrauchsanweisung:

Verwenden Sie die dbInterface-Klasse, um ein Objekt im Programm $test=new dbInterface; zu generieren
Parameter einstellen
test->$dbUsername ;Benutzername
test->$dbPassword; Passwort
test->$dbHost;Host
void setParameter(string host, string username, string passwort);
Datenbankverbindung: dbhandle test->dbConnect();
Rückgabewert: Fasle, Datenbankverbindungsfehler
>0, Datenbankverbindungshandle

Datenbank schließen: void test->dbClose(dbhandle);

Tabellenoperation: int test->dbQuery(string Datenbankname, string sql, dbhandle); SQL-Anweisung
ausführen
Rückgabewert: false, SQL-Ausführungsfehler
>0, SQL wird korrekt ausgeführt und zeigt auf den SQL-Rückgabewert

Datenoperation: int test->dbFetchrow(dataHandle, int offset); ruft den aktuellen Datensatz des SQL-Rückgabewerts ab. Nach erfolgreicher Ausführung bewegt sich der Zeiger zum nächsten Datensatz
int test->dbNumrows(dataHandle); Ermittelt die Anzahl der nach der SQL-Ausführung erhaltenen Datensätze (hauptsächlich SELECT-Anweisung)
int test->dbNumcols(dataHandle); Ruft die Anzahl der Datensatzfelder ab, die nach der SQL-Ausführung erhalten wurden (hauptsächlich SELECT-Anweisung)

Zur Erläuterung geben wir Ihnen nun ein Beispiel:

Die Datenbank verwendet MQSQL: Ihr Hostname ist „localhost“, der Benutzername ist „root“ und das Passwort ist „“.
Es gibt eine testdb-Datenbank und Tabelle1 in MySQL. Die Tabelle enthält zwei Felder: Name und Bezahlung

-----
test

require("testdb.inc"); //dbInterface-Klasse laden
$test = new dbInterface;//Erzeuge ein Objekt mit der Klasse dbInterface
$test->setParameter("localhost","root",""); //Datenbankparameter festlegen
$db = $test->dbConnect();//Mit der Datenbank verbinden
$Query = "SELECT name,pay FROM table ";//SQL-Anweisung festlegen
$temp_result = $test->dbQuery("testdb",$Query,$db); //Datenmaster-Datenbankoperation ausführen
echo "
"; $ls_num = $test->dbNumrows($temp_result); //Anzahl der Datensätze im Abfrageergebnis abrufen
echo $ls_num;
echo "
"; if (ls_num>0 )
{
$ls_col = $test->dbNumcols($db); //Ermitteln Sie die Anzahl der Spalten in der Tabelle
echo $ls_col;
echo "
"; $cate_result=$test->dbFetchrow($temp_result,0);//Erste Zeile der Datensatznummer
abrufen $hcid=$cate_result[0];//Den Wert des Namens
abrufen $hcate=$cate_result[1];//Erhalten Sie den Wert der Bezahlung
echo $hcid;
echo "
"; echo $hcate;
}

?>


Dies ist eine einfache anwendungsgekapselte Klasse, um den Betrieb der Datenbank abzuschließen. Wenn Sie andere Datenbanken betreiben möchten, müssen Sie nur die dbID-Variable in der dbInterface-Klasse ändern.


Das Obige stellt vor, wie man Datenbankoperationen in PHP kapselt, einschließlich verschiedener Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.


Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Die Smartwatch Huawei Watch GT 5 erhält ein Update mit neuen Funktionen Die Smartwatch Huawei Watch GT 5 erhält ein Update mit neuen Funktionen Oct 03, 2024 am 06:25 AM

Huawei führt weltweit die Softwareversion 5.0.0.100 (C00M01) für die Smartwatches Watch GT 5 und Watch GT 5 Pro ein. Diese beiden Smartwatches wurden kürzlich in Europa eingeführt, wobei das Standardmodell das günstigste Modell des Unternehmens ist. Diese Harmonie

Tekkens Colonel Sanders-Traum von KFC gebraten Tekkens Colonel Sanders-Traum von KFC gebraten Oct 02, 2024 am 06:07 AM

Katsuhiro Harada, der Regisseur der Tekken-Serie, versuchte einst ernsthaft, Colonel Sanders in das legendäre Kampfspiel einzubeziehen. In einem Interview mit TheGamer verriet Harada, dass er die Idee dem KFC Japan vorstellte, in der Hoffnung, die Fast-Food-Legende als Gast hinzuzufügen

Die Bewertungen von Cybertruck FSD loben den schnellen Spurwechsel und die Vollbildvisualisierung Die Bewertungen von Cybertruck FSD loben den schnellen Spurwechsel und die Vollbildvisualisierung Oct 01, 2024 am 06:16 AM

Tesla bringt die neueste Version 12.5.5 des vollständig autonomen Fahrens (Supervised) auf den Markt und bringt damit endlich die versprochene Cybertruck-FSD-Option mit, zehn Monate nachdem der Pickup mit der im Ausstattungspreis der Foundation Series enthaltenen Funktion in den Verkauf ging. F

Erster Blick: Durchgesickertes Unboxing-Video des kommenden Anker Zolo 4-Port 140W Wandladegeräts mit Display Erster Blick: Durchgesickertes Unboxing-Video des kommenden Anker Zolo 4-Port 140W Wandladegeräts mit Display Oct 01, 2024 am 06:32 AM

Anfang September 2024 wurde das 140-W-Ladegerät Zolo von Anker durchgesickert, und das war eine große Sache, da es sich um das erste Wandladegerät mit Display des Unternehmens überhaupt handelte. Jetzt gibt uns ein neues Unboxing-Video von Xiao Li TV auf YouTube einen ersten Blick auf den Hi

Garmin veröffentlicht über ein neues Update Verbesserungen der Adventure Racing-Aktivität für mehrere Smartwatches Garmin veröffentlicht über ein neues Update Verbesserungen der Adventure Racing-Aktivität für mehrere Smartwatches Oct 01, 2024 am 06:40 AM

Garmin beendet den Monat mit einer Reihe neuer stabiler Updates für seine neuesten High-End-Smartwatches. Um es noch einmal zusammenzufassen: Das Unternehmen hat die Systemsoftware 11.64 veröffentlicht, um den hohen Batterieverbrauch bei Enduro 3, Fenix ​​E und Fenix ​​8 zu bekämpfen (aktuell 1.099,99 $ bei Amazon).

Der neue Xiaomi Mijia Graphene Oil Heater mit HyperOS ist da Der neue Xiaomi Mijia Graphene Oil Heater mit HyperOS ist da Oct 02, 2024 pm 09:02 PM

Xiaomi wird in Kürze den Mijia Graphene Oil Heater in China auf den Markt bringen. Das Unternehmen führte kürzlich eine erfolgreiche Crowdfunding-Kampagne für das Smart-Home-Produkt durch, die auf seiner Youpin-Plattform gehostet wurde. Laut der Seite hat der Versand des Geräts bereits begonnen

Die Samsung Galaxy Z Fold Special Edition soll Ende Oktober erscheinen, da ein widersprüchlicher Name auftaucht Die Samsung Galaxy Z Fold Special Edition soll Ende Oktober erscheinen, da ein widersprüchlicher Name auftaucht Oct 01, 2024 am 06:21 AM

Die Einführung des lang erwarteten faltbaren „Special Edition“-Modells von Samsung hat eine weitere Wendung genommen. In den letzten Wochen verliefen die Gerüchte um die sogenannte Galaxy Z Fold Special Edition eher ruhig. Stattdessen hat sich der Fokus auf die Galaxy S25-Serie verlagert, darunter

Manjaro 24.1 „Xahea' startet mit KDE Plasma 6.1.5, VirtualBox 7.1 und mehr Manjaro 24.1 „Xahea' startet mit KDE Plasma 6.1.5, VirtualBox 7.1 und mehr Oct 02, 2024 am 06:06 AM

Mit einer Geschichte von über einem Jahrzehnt gilt Manjaro als eine der benutzerfreundlichsten Linux-Distributionen, die sowohl für Anfänger als auch für Power-User geeignet ist und einfach zu installieren und zu verwenden ist. Diese Arch-basierte Distribution wurde hauptsächlich in Österreich, Deutschland und Frankreich entwickelt

See all articles