php利用mysqli操作mysql数据库的类,实现增删改查
说明:
全类利用了mysqli函数库操作,需要提供SQL实现数据库的增删改查。
前几天在csdn上总结了mysqli的函数库,但只不过是对每一个函数的理解和熟悉。现在给出mysqli操作类,实操mysqli的函数,达到熟练运用。以及将理论的知识
,实用化。
前段时间的mysqli函数库的总结,我会关联在本文中
设计思路:
利用构造函数的判断,既可以给属性赋值默认值,也可以实例化的时候添加新的数据库信息。
把连接数据库,执行sql语句单独设定一个方法,可以在后续处理结果集的过程中,一劳永逸的调用。也就是处理SQL不管增删改查,都在一个方法中操作。只需要提
供结果集输出结果集即可。
将结果集处理分成了不同的方法,适应于增删改查最后需要的结果。
代码如下:
// +----------------------------------------------------------------------
/**
* 数据库操作类,进行增删改查
* @author */
class DatabaseOperate
{
private $host = "xxxxxxx";//服务器地址
private $name = "xxxxxxx";//数据库用户名
private $pwd = "xxxxxxx";//数据库登录密码
private $dBase = "xxxxxxx";//数据库名称
private $conn = "";//数据库连接对象
private $result = "";//结果集
private $filesArray = array();
private $rowsArray = array();
/**
* 构造函数,实现数据库连接,默认设置本地
* @param $host
* @param $name
* @param $pwd
* @param dBase
* @author */
public function __construct($host,$name,$pwd,$dBase)
{
if($host != "") $this->host = $host;
if($name != "") $this->name = $name;
if($pwd != "") $this->pwd = $pwd;
if($dBase != "") $this->dBase = $dBase;
$this->init_conn();
}
/**
* 连接数据库,设置字符集
* @author */
public function init_conn()
{
$this->conn = @mysqli_connect($this->host,$this->name,$this->pwd,$this->dBase);
mysqli_set_charset($this->conn,'utf8');
}
/**
* 利用sql语句执行,返回结果集
* @author */
public function mysql_query_rst($sql)
{
if($this->conn == ""){
$this->init_conn();
}
$this->result = @mysqli_query($this->conn,$sql);
}
/**
* 返回查询之后的记录函数
* @author */
public function getSelCount($sql)
{
$this->mysql_query_rst($sql);
if(mysqli_connect_errno() == 0){
$sql_num = mysqli_num_rows($this->result);
return $sql_num;
}else{
return "Connect failed:".mysqli_connect_error();
}
}
/**
* 取出查询之后结果集的单条记录
* @author */
public function getOneArray($sql)
{
$this->mysql_query_rst($sql);
if(mysqli_connect_errno() == 0){
$this->rowsRst = mysqli_fetch_assoc($this->result);
return $this->rowsRst;
}else{
return "Connect failed:".mysqli_connect_error();
}
}
/**
* 取出查询之后结果集的数组记录
* @author */
public function getAllArray($sql)
{
$this->mysql_query_rst($sql);
if(mysqli_connect_errno() == 0){
while($row = mysqli_fetch_assoc($this->result)){
$this->rowsArray[] = $row;
}
return $this->rowsArray;
}else{
return "Connect failed:".mysqli_connect_error();
}
}
/**
* 提供添加数据的id
* @author */
public function getAddId($sql)
{
$this->mysql_query_rst($sql);
if(mysqli_connect_errno() == 0){
$addId = mysqli_insert_id($this->conn);
return $addId;
}else{
return "Connect failed:".mysqli_connect_error();
}
}
/**
* 提供增删改的受影响行数
* @author */
public function getRows($sql)
{
$this->mysql_query_rst($sql);
if(mysqli_connect_errno() == 0){
$rows = mysqli_affected_rows($this->conn);
return $rows;
}else{
return "Connect failed:".mysqli_connect_error();
}
}
/**
* 释放结果集
* @author */
public function freeResult($sql)
{
mysqli_free_result($result);
$this->msg = "";
$this->fieldsNum = 0;
$this->rowsNum = 0;
$this->filesArray = "";
$this->rowsArray = "";
}
/**
* 关闭数据库
* @author */
public function close_conn()
{
$this->freeResult();
mysqli_close($this->conn);
$this->conn = "";
}
}
?>