<?php
class Mysql{
private $conn; //数据库连接资源
private $error; //错误信息
private $dbtype; //所连接数据库类型
private $host; //主机名
private $dbname; //数据库名
private $port; //连接端口号
private $user; //连接用户名
private $pwd; //密码
private $charset; //设置连接所采用的字符集
function __construct(){
//载入配置文件
include './include/config.php';
$this->dbtype=$cfg['dbtype'];
$this->host=$cfg['host'];
$this->dbname=$cfg['dbname'];
$this->port=$cfg['port'];
$this->user=$cfg['user'];
$this->pwd=$cfg['pwd'];
$this->charset=$cfg['charset'];
try{
$conn=new PDO("$this->dbtype:host=$this->host;port=$this->port;dbname=$this->dbname",$this->user,$this->pwd);
$this->conn=$conn;
}catch(PDOException $e){
$this->error="数据库连接不成功!".$e->getMessage()."<br>";
}
$this->conn->query("set names $this->charset");
}
//查询所有行或者多行数据
/* 参数:
$table 表名
$where 预留查询条件,默认为1即查询所有行
return array $lists
*/
public function getAll($table,$where=1){
$sql="SELECT * FROM $table WHERE $where";
$stmt=$this->statements($sql);
$result=$stmt->execute();
if($result){
$lists=$stmt->fetchAll(PDO::FETCH_ASSOC);
return $lists;
}else{
return false;
}
}
//删除方法
/*
$table 表名
$rowid 要删除的行
return bool
*/
public function delete($table,$rowid){
$sql="DELETE FROM $table WHERE CATE_ID='$rowid'";
$stmt=$this->statements($sql);
$res=$stmt->execute();
//用受影响的行数来作为判断是否执行成功的条件
if($res){
return $stmt->rowCount();
}else{
return false;
}
}
//获取单行数据
/*参数:
$table 表名
$rowid 要查询的行
return array $info
*/
public function getRow($table,$rowid){
$sql="SELECT * FROM $table WHERE CATE_ID='$rowid'";
$stmt=$this->statements($sql);
$result=$stmt->execute();
if($result){
return $info=$stmt->fetch(PDO::FETCH_ASSOC);
}else{
return false;
}
}
//更新数据
public function update($table,$cate_id,$cate_name){
$sql="UPDATE $table SET CATE_ID='$cate_id',CATE_NAME='$cate_name'WHERE CATE_ID='$cate_id'";
$stmt=$this->statements($sql);
$res=$stmt->execute();
if($res){
return $stmt->rowCount();
}else{
return false;
}
}
//插入一行数据
/* 参数:$table 表名
$data POST全局数组
return bool
*/
public function add($table,$data){
//SQL语句插入拼接处理
$sql="insert into $table(";
$sql.=implode(',',array_keys($data));
$sql.=")values('";
$sql.=implode("','",array_values($data));
$sql.="')";
//调用预处理方法
$stmt=$this->statements($sql);
$res=$stmt->execute();
if($res){
return $stmt->rowCount();
}else{
return false;
}
}
/*预处理方法:将每次执行的sql语句保留到日志文件中,并返回预处理对象
注:因为增删改查所需要返回的内容不同,所以不能把execute()方法封装到这个方法中
参数:
$sql sql查询语句
return 预处理对象
*/
private function statements($sql){
file_put_contents('sys.log',$sql."\n",FILE_APPEND);
$stmt=$this->conn->prepare($sql);
return $stmt;
}
//获取错误信息
public function getError(){
return $this->error();
}
}
?>
原文链接:https://blog.csdn.net/living_ren/article/details/78786361
本站声明:网站内容来源于网络,如有侵权,请联系我们,我们将及时处理。
还没有人抢沙发呢~