How to encapsulate database operations in PHP

WBOY
Release: 2016-08-08 09:33:49
Original
781 people have browsed it

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.

Related labels:
source:php.cn
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!