「PHP数据库连接的封装简介」 (php 数据库连接 封装)

PHP数据库连接的封装简介

PHP是一种广泛应用于网站开发的服务器脚本语言,而数据库则是网站的重要数据存储方式。为了简化PHP连接数据库的过程,开发者们通常会进行数据库连接的封装。本文将介绍PHP数据库连接的封装方式以及其优势。

一、PHP数据库连接的基本原理

在PHP中使用数据库需要连接数据库,通过连接之后可以进行增、删、改、查等操作,连接的方法有两种:MySQLi和PDO。其中,MySQLi是MySQL的扩展库,而PDO是PHP的数据对象扩展库,可以支持众多数据库,如MySQL、SQLite、Oracle等。连接数据库的基本语法如下:

“`

//连接MySQL数据库

$servername = “localhost”;

$username = “root”;

$password = “root”;

$dbname = “test”;

//创建连接

$conn = new mysqli($servername, $username, $password, $dbname);

//检测连接

if ($conn->connect_error) {

die(“连接失败:” . $conn->connect_error);

}

echo “连接成功”;

?>

“`

以上就是使用MySQLi连接MySQL数据库的基本语法。

二、PHP数据库连接的封装

通常在开发中,我们需要连接多个数据库,如果在每个PHP文件中都进行一遍数据库连接,不仅麻烦,而且容易出现代码冗余,降低开发效率。因此,我们可以将数据库连接封装成一个类或者函数,使代码更加简洁易懂。以下是一个使用MySQLi连接数据库的封装类:

“`

class DB {

private $host = “localhost”; //数据库主机

private $username = “root”; //数据库用户名

private $password = “root”; //数据库密码

private $dbname = “test”; //数据库名

private $port = 3306; //数据库端口

private $conn = null; //连接对象

private $stmt = null; //预处理对象

public function __construct() {

$this->conn = new mysqli($this->host, $this->username, $this->password, $this->dbname, $this->port);

if ($this->conn->connect_error) {

die(“连接失败:” . $this->conn->connect_error);

}

}

public function __destruct() {

$this->close();

}

//执行查询语句并返回结果集

public function query($sql) {

$this->stmt = $this->conn->query($sql);

if (!$this->stmt) {

die(“查询失败”);

}

return $this->stmt;

}

//执行插入语句并返回插入后的自增ID

public function insert($sql) {

$this->stmt = $this->conn->query($sql);

if (!$this->stmt) {

die(“插入失败”);

}

return $this->conn->insert_id;

}

//关闭连接对象

private function close() {

if ($this->stmt) {

$this->stmt->close();

}

$this->conn->close();

$this->stmt = null;

$this->conn = null;

}

}

?>

“`

使用该类连接数据库的代码如下:

“`

require_once(‘DB.php’);

$db = new DB();

$sql = “SELECT * FROM users”;

$result = $db->query($sql);

while ($row = $result->fetch_assoc()) {

echo $row[‘username’];

}

$db->close();

?>

“`

通过以上代码,我们可以看到数据库连接已经被封装,我们只需要实例化DB类即可,这样极大地简化了代码,提高了工作效率。

三、PHP数据库连接封装的优势

1.简化代码。通过封装,可以消除数据库连接代码的冗余,同时提高代码的易读性和可维护性。

2.提高安全性。通过封装,可以把数据库连接信息存储在类或函数中,不容易被恶意使用者窥视,从而提高了网站的安全性。

3.提高性能。在封装过程中,可以实现连接池等技术,提高数据库连接的效率,从而提高网站的访问速度。

四、结论

本文简要介绍了PHP数据库连接的封装方式以及其优势。通过封装,可以消除数据库连接代码的冗余,提高代码的可读性和可维护性,同时也提高了网站的安全性和性能。希望读者能够掌握PHP数据库连接的封装技巧,为网站开发注入一份高效与快乐。

相关问题拓展阅读:

php 使用类连接数据库报错Fatal error: Allowed memory size ofbytes exhausted (tried to alloc

你这个php版本有bug,之前我的滑迹握服务器上也经常出现这个,我换信庆了成了php-5.2.17-Win32-VC6-x86.zip这个版本就州销好了!

Fatal error: Allowed memory size ofbytes exhausted (tried to allocatebytes) in D:\wamp\www\ckly.php on line 43

从错误提示来看,是指php设置薯兆的8M内存已经耗尽。

但错误提示的 ckly.php 第 43 行,这个错误的行号比较奇怪,从你给出的源代码来看这个43行是不存在的。

由于本地没有mssql环境,不能测试,以下是我用mysql环境编写的代码,经测试通过运行正常,供参考:

host = $host;

$this->dbbase = $dbbase;

$this->dbpassword = $dbpassword;

$this->connnect();

}

//进行连接

function connnect()

{

//打开连接

$this->conn = mysql_connect($this->host, $this->dbbase, $this->dbpassword) or die(“连接失败”);

mysql_select_db(‘books’, $this->conn) or die(“连接数据库失败”);

}

function showdata()

{

$rows = mysql_query(‘SELECT * FROM customers’,$this->conn);

echo ‘姓名年龄’;

while($row = mysql_fetch_assoc($rows)){

echo ”.$row.”;

echo ‘清轮’.$row.”;

}

}

}

$p = new db_mysql(‘localhost’, ‘test’, ‘test’); //进行实例化

$p->showdata();

?>

你的类名字: db_mssql

你实际实例化的类是:db_mysql

至于出现这样的情况,比较奇怪,和内存关系不大。应该是你的版本太低了。

我改了一个类:

‘mysql_close’,’conn’=>’mysql_connect’,’select_db’=>’mysql_select_db’,’镇虚query’=>’mysql_query’,’array’=>’mysql_fetch_array’);//封装内置函数的数组,这样便于管理

$this->host = $host;

$this->dbbase = $dbbase;

$this->dbpassword = $dbpassword;

$this->db_array=$db_array;

//11-14行是为了 把让变量能在类中传递

$this->connnect();#调用这个类(神旅姿我自己)的connect函数

}

function connnect(){

//打开连接

$conn= $this->db_array($this->host,$this->dbbase,$this->dbpassword) or die(“连接失败”);

$this->db_array(‘mysql’,$conn)or die (“连接数据库失败”);

$this->conn=$conn;

}

function query($sql){#用于测试的,执行SQL语句

return $this->result=$this->db_array($sql);

}

function fetch_array(){#返回数组

return $this->db_array($this->result);

}

function __destruct()

{

$this->db_array($this->conn) or die (“清理失败”);#关闭连接

}

}

$p = new db_mysql(‘127.0.0.1′,’root’,”); //进行实例化

$p->query(“show databases”);#执行查询所有数据库

while($r=$p->fetch_array()){#显示

echo $r.”;

}#能显示说明能执行SQL语句,你可以自己一步一步完善

php怎么用mysqli链接数据库和输出sql

一、mysql与mysqli的概念相关:

1、mysql与mysqli都是php方面的函数集,与mysql数据库关联不大。

2、在php5版本之前,一般是用php的mysql函数去驱动mysql数据库的,比如mysql_query()的函数,属于面向过程3、在php5版本以后,宽明增加了mysqli的函数功能,某种意义上讲,它是mysql系统函数的增强版,更稳定更高效更安全,与mysql_query()对应的有mysqli_query(),属于面向对象,用对象的方式操作驱动mysql数据库

二、mysql与mysqli的区别:

1、mysql是非持继连接函数,mysql每次链接都会打开一个连接的进程。

2、mysqli是永远连接函数,mysqli多次运行mysqli将使用同一连接进程,从而减少了服务器的开销。mysqli封装了诸如事务等一些高级操作,同时封装了DB操作过程中的很多可用的方法。

三、mysql与mysqli的用法:

1:mysql(过程方式让局):

  $conn =

mysql_connect(‘localhost’, ‘user’, ‘password’); //连接mysql数据库  mysql_select_db(‘data_base’);

//选择数据库  $result =

mysql_query(‘select * from data_base’);//第二个可选参数,指定打开的连接  $row =

mysql_fetch_row( $result ) ) //只取一行数据  echo

$row; //输出之一个字段的值  

PS:mysqli以过程式的方式操作,有些函数必须指定资源,比如mysqli_query(资源标识,SQL语句),并且资源标识的参数是放在前面的,而mysql_query(SQL语句,’资源标识’)的资源标识是可选的,默认值是上慎滑告一个打开的连接或资源。

2、mysqli(对象方式):  

$conn = new

mysqli(‘localhost’, ‘user’, ‘password’,’data_base’);  //要使用new操作符,最后一个参数是直接指定数据库  //假如构造时候不指定,那下一句需要$conn -> select_db(‘data_base’)实现  $result =

$conn -> query( ‘select * from data_base’ );  $row =

$result -> fetch_row(); //取一行数据  echo

row; //输出之一个字段的值

使用new mysqli(‘localhost’, usenamer’, ‘password’, ‘databasename’);会报错,提示如下:

Fatal error: Class ‘mysqli’ not found in …

一般是mysqli是没有开启的,因为mysqli类不是默认开启的,win下要改php.ini,去掉php_mysqli.dll前的;,linux下要把mysqli编译进去。

四、mysql_connect()与mysqli_connect()

1.使用mysqli,可以把数据库名称当作参数传给mysqli_connect()函数,也可以传递给mysqli的构造函数;

关于php 数据库连接 封装的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。


数据运维技术 » 「PHP数据库连接的封装简介」 (php 数据库连接 封装)