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.

PHPidentifiesauser'ssessionusingsessioncookiesandsessionIDs.1)Whensession_start()iscalled,PHPgeneratesauniquesessionIDstoredinacookienamedPHPSESSIDontheuser'sbrowser.2)ThisIDallowsPHPtoretrievesessiondatafromtheserver.

The security of PHP sessions can be achieved through the following measures: 1. Use session_regenerate_id() to regenerate the session ID when the user logs in or is an important operation. 2. Encrypt the transmission session ID through the HTTPS protocol. 3. Use session_save_path() to specify the secure directory to store session data and set permissions correctly.

PHPsessionfilesarestoredinthedirectoryspecifiedbysession.save_path,typically/tmponUnix-likesystemsorC:\Windows\TemponWindows.Tocustomizethis:1)Usesession_save_path()tosetacustomdirectory,ensuringit'swritable;2)Verifythecustomdirectoryexistsandiswrita

ToretrievedatafromaPHPsession,startthesessionwithsession_start()andaccessvariablesinthe$_SESSIONarray.Forexample:1)Startthesession:session_start().2)Retrievedata:$username=$_SESSION['username'];echo"Welcome,".$username;.Sessionsareserver-si

The steps to build an efficient shopping cart system using sessions include: 1) Understand the definition and function of the session. The session is a server-side storage mechanism used to maintain user status across requests; 2) Implement basic session management, such as adding products to the shopping cart; 3) Expand to advanced usage, supporting product quantity management and deletion; 4) Optimize performance and security, by persisting session data and using secure session identifiers.

The article explains how to create, implement, and use interfaces in PHP, focusing on their benefits for code organization and maintainability.

The article discusses the differences between crypt() and password_hash() in PHP for password hashing, focusing on their implementation, security, and suitability for modern web applications.

Article discusses preventing Cross-Site Scripting (XSS) in PHP through input validation, output encoding, and using tools like OWASP ESAPI and HTML Purifier.


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

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.

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

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Linux new version
SublimeText3 Linux latest version

Zend Studio 13.0.1
Powerful PHP integrated development environment
