php便捷操作数据库类

<meta charset="utf-8">
<?php


class MyClass
{
private $conn;
private $table;
private $where;
private $insert;
private $order;
private $limit;
protected $sql;
private $field = '*';


        //构造函数,连接数据库
public function __construct($host=null, $user_name=null, $pas=null, $dbname=null)
{
$this->conn = mysqli_connect($host, $user_name, $pas, $dbname);
echo (mysqli_connect_error());
mysqli_query($this->conn, 'set names utf8');

}


/**
* 选择数据表
* @param  [type] $table [description]
* @return [type]        [description]
*/
public function table($table=null)
{
$this->table = $table;
return $this;
}



/**
* 条件
* @param  [type] $where [条件,可以是字符串、数组(一维数组)]例如: ['id', condition']默认为or
* @return [type]        [description]
*/
public function where($where=null)
{
if(empty($where))
return "没有传入条件";
if(!is_array($where))
$this->where = ' where '. $where;
else
{
if(count($where)>2)
{
array_pop($where);
$c = ' AND ';
}
else
$c = ' or ';
$str = null;


foreach($where as $k=>$v)
{
$str .= $k.'=' ."'{$v}'" .$c;
}
if($c==' AND ')
$str = substr($str, 0, -5);
else
$str = substr($str, 0, -4);


$this->where = ' where '.$str;
}


return $this;
}




public function error_replace($result)
{
$result = str_replace('column', '字段', $result);
$result = str_replace('Unknown ', '错误', $result);
$result = str_replace(" in 'field list'", '在sql语句中', $result);
return $result;
}


public function select()
{
if(empty($this->table))
return "缺乏查询条件";


$sql = "SELECT " . $this->field .' from '.$this->table. $this->where. $this->order .$this->limit;
$data = mysqli_query($this->conn, $sql);


if(!empty($data))
{
if($data->num_rows==0) $result = null;
while($row=mysqli_fetch_assoc($data))
$result[] = $row;
}
elseif(!empty(mysqli_error($this->conn)))
$result = $this->error_replace(mysqli_error($this->conn));


return $result;
}


public function insert($data=null)
{
$string = null;
$str = '(';
foreach($data as $k=>$v)
{
$string .= $k.',';
$str .= "'{$v}',";
}
$string = rtrim($string, ',');
$str = rtrim($str, ',');
$str .= ')';
$sql = 'INSERT INTO ' . $this->table ."({$string}) values$str";
$status = mysqli_query($this->conn, $sql);
if($status)
return 1;
else
return $this->error_replace(mysqli_error($this->conn));
}
public function delete($data=null)
{
$sql = "DELETE from " . $this->table .$this->where;


return mysqli_query($this->conn, $sql);
}
public function update($data=null)
{
if(empty($data))
return "没有填写更新的数据";
$da = null;
foreach($data as $k=>$v)
$da .= "{$k} = '{$v}',";


$da = rtrim($da, ',');
$sql = "UPDATE ".$this->table." set ".$da. ' '.$this->where;
$status = mysqli_query($this->conn, $sql);
if($status)
return 1;
else
return $this->error_replace(mysqli_error($this->conn));
}
public function field($data='*')
{
$this->field = $data;
return $this;
}
public function limit($data=null)
{
if(empty($data))
$this->limit = null;
else
$this->limit = " limit $data";
return $this;
}
public function order($data=null)
{
if(empty($data))
$this->order = null;
else
{
if(is_array($data))
foreach($data as $k=>$v)
$this->order = " ORDER BY {$k} $v";
else
$this->order = " ORDER BY $data";
}
return $this;
}
}


//连接数据库,参数: 主机地址  账号  密码  数据库名
$conn = new MyClass('localhost', 'root', '', '');


/***************
这里的条件有
where  条件
table  数据表
field  字段
limit  条数限定
order  排序
必须条件有 table
操作有
insert 增
delete 删
update 改
select 查

使用方法如下,简单的操作如下,还有一些操作可以自己查看类里面的方法
*******************/

/*************删除数据***********/
// $conn->table('b_user')->where("id>=16")->delete();

/************添加数据********************/

// $conn->table('b_user')->insert(['user_id'=>'123', 'name'=>'', 'password'=>'asfas', 'phone'=>'asfasfas']);

/****************查询数据***********************/

$data = $conn->table('b_user')->where("id>1")->limit(3)->order('id desc')->select();
// $data = $conn->table('b_user')->where("id in (1,13)")->field('name')->select();
// where也可写成数组形式
var_dump($data);

/***************更新数据********************/
echo $conn->table('b_user')->where(['id'=>32])->update(['name'=>'啦啦啦']);
?>

猜你喜欢

转载自blog.csdn.net/qq_36580691/article/details/81049436