mysql mysqli封装_mysql封装mysqli类

//conf.php

return array(

'host'=>'localhost',

'user'=>'root',

'pwd'=>'910420',

'db'=>'test',

'charset'=>'utf8',

'salt'=>'Lsd":Adfqef]',

);

?>

//Mysql.class.php

abstract class aDB {

/**

* 连接数据库,从配置文件中读取配置信息

*/

abstract public function conn();

/**

* 发送query查询

* @param string $sql sql??

* @return mixed

*/

abstract public function query($sql);

/**

* 查询多行数据

* @param string $sql sql语句

* @return array

*/

abstract public function getAll($sql);

/**

* 单行数据

* @param string $sql sql语句

* @return array

*/

abstract public function getRow($sql);

/**

* 查询单个数据 count(*)

* @param string $sql sql语句

* @return mixed

*/

abstract public function getOne($sql);

/**

* 自动创建sql并执行,insert/update

* @param array $data 关联数组 键/值 与表的 列/值对应

* @param string $table 表明

* @param string $act 动作/update/insert

* @param string $where 条件,用于update

* @return int 新插入的行的主键值或者影响行数

*/

abstract public function Exec($data , $table , $act='insert' , $where='0');

/**

* 返回上一条insert语句产生的值

*/

abstract public function lastId();

/**

* 返回上一条语句影响的行数

*/

abstract public function affectRows();

}

class Mysql extends aDB{

public $mysqli;

public function __construct(){

$this->conn();

}

/**

* 连接数据库,从配置文件中读取配置信息

*/

public function conn(){

$conf=include './conf.php';

$this->mysqli = new mysqli($conf['host'], $conf['user'], $conf['pwd'], $conf['db']);

//设置字符集

$this->mysqli->query('set names '.$conf['charset']);

}

/**

* 发送query查询

* @param string $sql sql??

* @return mixed

*/

public function query($sql){

//select返回一个对象或者无结果集sql返回bool

return $this->mysqli->query($sql);

}

/**

* 查询多行数据

* @param string $sql sql语句

* @return array

*/

public function getAll($sql){

$data=[];

$res=$this->mysqli->query($sql);

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

$data[]=$row;

}

return $data;

}

/**

* 单行数据

* @param string $sql sql语句

* @return array

*/

public function getRow($sql){

$res=$this->mysqli->query($sql);

return $res->fetch_assoc();

}

/**

* 查询单个数据 count(*)

* @param string $sql sql语句

* @return mixed

*/

public function getOne($sql){

$res=$this->mysqli->query($sql);

return $res->fetch_row()[0];

}

/**

* 自动创建sql并执行,insert/update

* @param array $data 关联数组 键/值 与表的 列/值对应

* @param string $table 表明

* @param string $act 动作/update/insert

* @param string $where 条件,用于update

* @return int 新插入的行的主键值或者影响行数

*/

public function Exec($data , $table , $act='insert' , $where='0'){

if($act == 'insert'){

$sql ="insert into $table (";

$sql.=implode(',',array_keys($data)).") values('";

$sql.=implode(array_values($data),"','")."')";

}else{

$sql="update $table set ";

foreach($data as $k => $v){

$sql.=$k."='".$v."',";

}

$sql=rtrim($sql,',')." where ".$where;

}

return $this->mysqli->query($sql);

}

/**

* 返回上一条insert语句产生的值

*/

public function lastId(){

return $this->mysqli->insert_id;

}

/**

* 返回上一条语句影响的行数

*/

public function affectRows(){

return $this->mysqli->affected_rows;

}

}

$a= new Mysql();

$b=$a->Exec(array('name'=>'zhao','age'=>15),'test');

var_dump($a->affectRows());//int(1)

var_dump($a->lastId());//int(7)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值