<?php
include (‘ft.php‘);
$db=Danli::show();
//查询
//$re=$db->table(‘stree‘)->where([‘name‘=>‘四六级分数‘]);
//
//$data=$db->get();
//添加
//$arr=$db->table(‘stree‘)->insert([‘name‘=>‘四六级分数‘,‘email‘=>‘124fsdag‘]);
//var_dump($arr);
//删除;
//$del=$db->del([‘id‘=>[2,3]]);
//修改
$db->table(‘stree‘)->where([‘id‘=>2]);
$res=$db->update([‘name‘=>‘第一次改‘,‘email‘=>‘改第三方‘]);
var_dump($res);
//封装语句
<?php
class Danli{
//将复制后的数据存进属性中,方便其他方法调用
private $table=null;
private $where=null;
private $pdo;
private static $internet;
private function __construct()
{
//链接数据库,私有的是为了防止外部直接实例化
$this->pdo=new PDO("mysql:host=127.0.0.1;dbname=1611b","root","root");
}
private function __clone()
{
//定义成私有的,防止外部clone内部方法
// TODO: Implement __clone() method.
}
public static function show(){
//判断类是否被实例化,如果没有则实例化,并存进self::$internet中,self::$internet是调用静态属性
if(!(self::$internet instanceof Danli)){
self::$internet=new Danli();
}
return self::$internet;
}
function table($table){
//定义表名,利用实例化的类->table可调用
$this->table=$table.‘ ‘;
return $this;
}
function where($where){
//where后跟的条件,判断输是数组还是字符串
if(is_array($where)){
$str=‘where ‘;
foreach ($where as $k=>$v){
$str.=$k.‘=‘."‘$v‘".‘ and ‘;
}
$str=rtrim($str,‘ and ‘);
}else{
$str=$where;
}
return $this->where=$str;
}
function get(){
//查询的封装
return $this->pdo->query("select*from $this->table $this->where")->fetchAll(PDO::FETCH_ASSOC);
}
function insert($arr){
//添加
$key=array_keys($arr);
$keys=implode(‘,‘,$key);
$str=‘‘;
foreach ($arr as $k=>$v){
$str.=‘,‘."‘".$v."‘";
}
$str=substr($str,1);
return $this->pdo->exec("insert into $this->table ($keys)values($str)");
}
function del($id){
//删除
$str=‘‘;
$str1=‘‘;
foreach ($id as $k=>$v){
$str.=$k;
foreach ($v as $kk=>$vv){
$str1.=‘,‘.$vv;
}
}
$str2=substr($str1,1);
$ids=‘where ‘.$str.‘ in ‘.‘(‘.$str2.‘)‘;
return $this->pdo->exec("delete from $this->table $ids");
}
function update($res){
//修改
$str=‘‘;
foreach ($res as $k=>$v){
$str.=‘,‘.$k.‘=‘."‘".$v."‘";
}
$str=substr($str,1);
return $this->pdo->exec("update $this->table set $str $this->where");
}
}