Home Backend Development PHP Tutorial How to encapsulate database operations in PHP

How to encapsulate database operations in PHP

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

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

-----

test

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.

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

Video Face Swap

Video Face Swap

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

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

Huawei Watch GT 5 smartwatch gets update with new features Huawei Watch GT 5 smartwatch gets update with new features Oct 03, 2024 am 06:25 AM

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

Tekken\'s Colonel Sanders dream fried by KFC Tekken\'s Colonel Sanders dream fried by KFC Oct 02, 2024 am 06:07 AM

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

Cybertruck FSD reviews praise quick lane switching and full-screen visualizations Cybertruck FSD reviews praise quick lane switching and full-screen visualizations Oct 01, 2024 am 06:16 AM

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 releases Adventure Racing activity improvements for multiple smartwatches via new update Garmin releases Adventure Racing activity improvements for multiple smartwatches via new update Oct 01, 2024 am 06:40 AM

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).

New Xiaomi Mijia Graphene Oil Heater with HyperOS arrives New Xiaomi Mijia Graphene Oil Heater with HyperOS arrives Oct 02, 2024 pm 09:02 PM

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

First look: Leaked unboxing video of upcoming Anker Zolo 4-port 140W wall charger with display First look: Leaked unboxing video of upcoming Anker Zolo 4-port 140W wall charger with display Oct 01, 2024 am 06:32 AM

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

Samsung Galaxy Z Fold Special Edition revealed to land in late October as conflicting name emerges Samsung Galaxy Z Fold Special Edition revealed to land in late October as conflicting name emerges Oct 01, 2024 am 06:21 AM

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

Manjaro 24.1 \'Xahea\' launches with KDE Plasma 6.1.5, VirtualBox 7.1, and more Manjaro 24.1 \'Xahea\' launches with KDE Plasma 6.1.5, VirtualBox 7.1, and more Oct 02, 2024 am 06:06 AM

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

See all articles