How to encapsulate database operations in PHP
Encapsulation of database operations in php
Many aspects of dynamic web design involve database operations, but sometimes switching to other backend databases as needed requires a large number of program modifications. This is a tedious, time-consuming and error-prone task. In fact, we can use classes in PHP to encapsulate database operations, so that the written program can complete changes to the background database with very small changes.
Now we encapsulate it in dbfz.inc, and its design is as follows:
class dbInterface{ var $dbID=1; //Used to determine the database for the current operation. When dbID is 1, it represents MySQL, when it is 2, it represents SQL Server, and when it is 3, it represents ODBC or others.
var $dbHost; //The domain name of the host where the database is located
var $dbUsername; //Database username
var $dbPassWord; //User password
//Set host, username and password function
function setParameter($host,$username,$password){
$this->dbUsername=$username;
$this->dbHost=$host;
$this->dbPassword=$password;
} //Join database function
function dbConnect(){
switch($this->dbID)
{
case 1;
return @mysql_connect($this->dbHost,$this->dbUsername,$this->dbPassword);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
//Close the library function
function dbClose($dataHandle){
switch($this->dbID)
{
case 1;
mysql_close($dataHandle);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
//Execute SQL statement function
function dbQuery($dbName,$sql,$dbHandle){
switch($this->dbID)
{
case 1;
return @mysql_db_query($dbName,$sql,$dbHandle);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
//Retrieve the current record function of SQL return value
function dbFetchrow($dataHandle,$offset=-1){
switch($this->dbID)
{
case 1;
@mysql_data_seek($dataHandle,$offset);
return @mysql_fetch_row($dataHandle);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
//Return the retrieved record number function
function dbNumrows($dataHandle){
switch($this->dbID)
{
case 1;
return @mysql_num_rows($dataHandle);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
//Return the function of retrieving the number of columns
function dbNumcols($dataHandle){
switch($this->dbID)
{
case 1;
return @mysql_num_fields($dataHandle);
case 2;
//Use functions that support SQL Server
case 3;
//Use functions that support ODBC
}
}
}
Here are the instructions for use:
Use the dbInterface class to generate an object in the program $test=new dbInterface;
Set parameters
test->$dbUsername ;Username
test->$dbPassword; password
test->$dbHost;Host
void setParameter(string host, string username, string password);
Database connection: dbhandle test->dbConnect();
Return value: fasle, database connection error
>0, database connection handle
Database close: void test->dbClose(dbhandle);
Table operation: int test->dbQuery(string databasename, string sql, dbhandle); execute SQL statement
Return value: false, SQL execution error
>0, SQL is executed correctly, and points to the SQL return value,
Data operation: int test->dbFetchrow(dataHandle, int offset); retrieves the current record of the SQL return value. After successful execution, the pointer moves to the next record
int test->dbNumrows(dataHandle); Get the number of records obtained after SQL execution (mainly SELECT statement)
int test->dbNumcols(dataHandle); Get the number of record fields obtained after SQL execution (mainly SELECT statement)
Now we will give you an example to explain:
The database uses MQSQL: its host name is "localhost", user name is "root" and password is "".
There is a testdb database and table1 in mysql. The table includes two fields: name and pay
-----
require("testdb.inc"); //Load dbInterface class
$test = new dbInterface;//Generate an object using class dbInterface
$test->setParameter("localhost","root",""); //Set database parameters
$db = $test->dbConnect();//Connect to the database
$Query = "SELECT name,pay FROM table ";//Set SQL statement
$temp_result = $test->dbQuery("testdb",$Query,$db); //Perform data master database operation
echo "
";
$ls_num = $test->dbNumrows($temp_result); //Get the number of records in the query result
echo $ls_num;
echo "
";
if (ls_num>0 )
{
$ls_col = $test->dbNumcols($db); //Get the number of columns in the table
echo $ls_col;
echo "
";
$cate_result=$test->dbFetchrow($temp_result,0);//Get the first row of the record number
$hcid=$cate_result[0];//Get the value of name
$hcate=$cate_result[1];//Get the value of pay
echo $hcid;
echo "
";
echo $hcate;
}
?>
This is a simple application encapsulation class to complete the operation of the database. If you want to operate other databases, you only need to modify the dbID variable in the dbInterface class.
The above introduces how to encapsulate database operations in PHP, including various aspects. I hope it will be helpful to friends who are interested in PHP tutorials.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Huawei is rolling out software version 5.0.0.100(C00M01) for the Watch GT 5 and the Watch GT 5 Prosmartwatchesglobally. These two smartwatches recently launched in Europe, with the standard model arriving as the company’s cheapest model. This Harmony

Katsuhiro Harada, the Tekken series director, once seriously tried to bring Colonel Sanders into the iconic fighting game. In an interview with TheGamer, Harada revealed that he pitched the idea to KFC Japan, hoping to add the fast-food legend as a g

Tesla is rolling out the latest Full Self-Driving (Supervised) version 12.5.5 and with it comes the promised Cybertruck FSD option at long last, ten months after the pickup went on sale with the feature included in the Foundation Series trim price. F

Garmin is ending the month with a new set of stable updates for its latest high-end smartwatches. To recap, the company released System Software 11.64 to combat high battery drain across the Enduro 3, Fenix E and Fenix 8 (curr. $1,099.99 on Amazon).

Xiaomi will shortly launch the Mijia Graphene Oil Heater in China. The company recently ran a successful crowdfunding campaign for the smart home product, hosted on its Youpin platform. According to the page, the device has already started to ship to

Earlier in September 2024, Anker's Zolo 140W charger was leaked, and it was a big deal since it was the first-ever wall charger with a display from the company. Now, a new unboxing video from Xiao Li TV on YouTube gives us a first-hand look at the hi

The launch of Samsung's long-awaited 'Special Edition' foldable has taken another twist. In recent weeks, rumours about the so-called Galaxy Z Fold Special Edition went rather quiet. Instead, the focus has shifted to the Galaxy S25 series, including

With a history of over one decade, Manjaro is regarded as one of the most user-friendly Linux distros suitable for both beginners and power users, being easy to install and use. Mostly developed in Austria, Germany, and France, this Arch-based distro
