怎么使用PHP连接MySql数据库

在使用此类之前,可以普及两点知识:

PHP中使用静态的调用,不同于其他编程语言,它的静态调用为:

类名::$静态属性

PHP如何连接MySQL数据库——详解连接MySQL的几种方式

类名::静态方法()

而Java、C#等编程语言都是通过:

类名.静态属性

类名.静态方法()

静态方法的优点:

(1)在代码的任何地方都可以用,不需要实例对象就能访问静态属性或方法;

(2)类的每个实例都可以访问类中定义的静态属性,可以利用静态属性来设置值,该值可以被类的所有对象使用,方便控制数据库参数,连接对象的创建与关闭;

DBHelper.php 静态工具类

<
?php
/**该PHP文件为了连接数据库方便
* 为连接数据库提供静态方法
*/
header("
Content-type: text/html;
charset=utf-8"
);

class DBHelper {
static $sqlName = "
127.0.0.1"
;

static $userName = "
root"
;

static $passWord = "
123456"
;

static $dbName = "
test"
;

//连接数据库
static function dbConn() {
$conn = mysqli_connect(self::$sqlName, self::$userName,
self::$passWord, self::$dbName);

if ($conn == false) {
echo "
<
script>
alert('
数据库连接失败'
)<
/script>
"
;

}
//设置连接对象编码
mysqli_query($conn, "
set names utf8"
);

return $conn;

}
//查询数据
//param1:查询类型,param2:执行语句
//param1参数类型: 0单个数组,1多个数组。
static function select($state, $mysql):array {
$conn = self::dbConn();
//获得连接对象
$sql = $mysql;

$query = mysqli_query($conn, $sql);

if ($state == 1) {
$result = mysqli_fetch_all($query,MYSQLI_ASSOC);

} else {
$result = mysqli_fetch_assoc($query);

}
// 释放结果集
mysqli_free_result($query);

self::dbClose($conn);
//释放连接对象
if ($result == null) { //如果结果为空,则返回空数据集
return array();

}
return $result;

}
//增加、删除、修改数据
//param1:执行类型;param2:执行语句
//param1参数类型:1增加,2修改,3删除。
static function sqlHelper($state, $mysql):int {
$conn = self::dbConn();
//获得连接对象
$sql = $mysql;

$query = mysqli_query($conn, $sql);

//判断状态,做出相应提示。
//$sts = $state==3?"
删除"
:($state==2?"
修改"
:($state==1?"
增加"
:$state));

self::dbClose($conn);
//释放连接对象
if ($query){
return 1;
//有内容变化
//return $sts."
成功"
;

}
else{
return 0;
//无内容变化
//return $sts."
失败"
;

}
}
//关闭连接
static function dbClose($conn) {
$conn ->
Close();

}
}
?>

Test.php 用来测试数据

//查询单个数据
$select = DBHelper ::select(0, "
select * from XXX where xx = '
$xx'
"
);

//查询多个数据
$selectAll = DBHelper ::select(1,"
select * from XXX"
);

//添加数据
$insert = DBHelper ::sqlHelper(1, "
insert into XXX (xx,xx,xx) values ('
$xx'
,'
$xx'
,'
$xx'
)"
);

//修改数据
$update = DBHelper ::sqlHelper(2, "
update XXX set xx = '
$xx'
,xx = '
$xx'
,xx = '
$xx'
, where xx = '
$xx'
"
);

//删除数据
$delete = DBHelper ::sqlHelper(3, "
delete from XXX where xx = '
$xx'
"
);

前两条测试数据,都是查询,设置的返回参数分别为mysqli_fetch_assoc、mysqli_fetch_all,这两个参数返回的都是array,只不过里面有单个数据或多个数据。

mysqli_fetch_assoc:

mysqli_fetch_all:

后三条对应的是增删改,返回的int类型参数,可以判断执行是否成功。



MySQL是目前世界上最流行的开源关系型数据库管理系统,而PHP作为目前最流行的开发语言之一,其连接MySQL的方式也非常的多样化。本文将详细介绍几种常见的PHP连接MySQL数据库的方法及其优缺点。
第一种:使用mysqli扩展连接MySQL数据库
mysqli是php连接mysql的扩展,它提供面向对象和面向过程两种接口,与mysql扩展相比它具有许多优势。mysqli提供了一组高级特性,支持MySQL 4.1以上版本,它包括了事务,多语句的执行,预处理语句,存储过程和多个结果集等。mysqli有一个明显的缺陷,它不能够跨数据库服务器访问一个数据库。
第二种:使用PDO扩展连接MySQL数据库
PDO是PHP里面官方支持的数据库操作扩展,其中也包括了对MySQL的支持。
优点1:PDO提供的数据访问抽象层可以给不同类型的数据库提供一个通用的访问接口。这样我们把数据库换成了别的系统时不需要去改变我们的代码。
优点2: PDO自带防止SQL注入功能。
缺点:PDO相对还比较复杂,使用PDO扩展开发的时候要稍微复杂一点。
第三种:使用mysql扩展连接MySQL数据库
mysql扩展是PHP中自带的最简单的一种连接数据库的方式。但是它仅支持MySQL 3.23.X及以下版本,不支持MySQL 4及以上版本,建议使用mysqli代替。
总结:
无论选择哪种连接MySQL数据库的方式,都需要注意下面几点:
1、确定MySQL服务器的地址、端口、用户名和密码。
2、使用的编程语言如:PHP,Python,Java都要根据各自的特点调用不同的MySQL数据库接口。
3、指定的编程语言需要已经正确安装并配置好其MySQL数据库驱动,否则将会无法连接。
最后,需要提醒大家的就是,对于PHP连接MySQL数据库,一定需要注意安全性问题,尽量避免SQL注入和XSS等安全问题。希望这篇文章对于大家学习使用PHP连接MySQL数据库有所帮助。