php数据库的类
2016-06-27 10:20
369 查看
<?php header('content-type:text/html;charset=utf-8'); //配置项 define('HOST','localhost'); define('USER','root'); define('PASS',''); define('CHARSET','utf8'); define('DBNAME', 'lamp'); //类的声明 class Model{ //成员属性 private $tableName;//表明 private $fields;//当前表的所有的字段信息 private $pk;//主键信息 private $where = '';//条件字符串 private $field = '';//字段字符串 private $limit = '';//条数限定字符串 //构造方法 public function __construct($tableName){ $this->tableName = $tableName; //连接 @mysql_connect(HOST,USER,PASS) or die('数据库连接失败'); //选择数据库 mysql_select_db(DBNAME) or die('选择数据库失败'); //设定字符集 mysql_set_charset(CHARSET) or die('字符集设定失败'); //获取字段信息 $this->getAllFields(); } //获取表的所有字段信息 public function getAllFields(){ //拼接sql $sql = "desc ".$this->tableName; //发送 $result = mysql_query($sql); //判断 if($result){ $res = array(); $pk = "";//主键 while($row = mysql_fetch_assoc($result)){ //提取主键 if($row['Key'] =="PRI"){ $pk = $row['Field']; }else{//如果不是主键 压入数组 $res[] = $row['Field']; } } //将字段信息存入属性中 $this->fields = $res; $this->pk = $pk; } } // 数据添加操作 // array('username'=>'admin','password'=>'admin'); // || // || // \/ // insert into user (username,password)values('admin','admin'); public function add($arr){ //筛选 foreach($arr as $k=>$v){ //检测 if(!in_array($k, $this->fields)){ unset($arr[$k]); } } //获取所有的键名 $keys = array_keys($arr); //拼接键名的sql指令 $keys_sql = implode(',', $keys); //获取所有的键值 $values = array_values($arr); //拼接键值的sql $values_sql = implode('","', $values); $values_sql = '"'.$values_sql.'"'; //准备sql指令 $sql = "insert into ".$this->tableName." (".$keys_sql.")values(".$values_sql.")"; //执行发送 $result = mysql_query($sql); // /处理结果 if($result){ return mysql_insert_id(); }else{ return false; } } //删除操作 public function delete($id){ //拼接sql $sql = "delete from ".$this->tableName." where ".$this->pk."=".$id; //发送 $result = mysql_query($sql); //处理结果 if($result){ //返回受影响的函数 return mysql_affected_rows(); }else{ return false; } } // 修改 // array('username'=>'admin','password'=>'admin','id'=>1); // update user set username='admin',password="admin" where id=1; public function save($arr){ //筛选 foreach($arr as $k=>$v){ //如果不在字段数组中 if(!in_array($k, $this->fields)){ //如果键名不等于主键名 if($k != $this->pk){ unset($arr[$k]); } } } $sql = ""; $where = "";//where uid = 1; //拼接sql array('username'=>'admin','password'=>'admin','uid'=>1); foreach($arr as $k=>$v){ //如果是主键 if($k == $this->pk){ $where = " where ".$this->pk." = ".$v; }else{ $sql .= $k."='".$v."',"; } } $sql = rtrim($sql,','); //检测是否有条件 if($where == ''){ die('不允许没有条件的更新'); } //拼接sql $allSql = "update ".$this->tableName." set ".$sql.$where; //执行 $result = mysql_query($allSql); if($result){ return mysql_affected_rows(); }else{ return false; } } //查询 // select * from user where uid = 56 public function find($id){ //拼接sql $sql = "select * from ".$this->tableName." where ".$this->pk." = ".$id; //发送 $result = mysql_query($sql); //判断 if($result){ $res = mysql_fetch_assoc($result); return $res; }else{ return false; } } //查询多条数据 // $user->where("id>10")->field()->limit('1,9')->select(); public function select(){ //检测条件 $w = ""; if($this->where != ''){ $w = " where ".$this->where; } //检测字段 $f = ""; if($this->field != ''){ $f = $this->field; }else{ $f = '*'; } // /检测条数限定 $l = ""; if($this->limit != ''){ $l = " limit ".$this->limit; } //清空指令 $this->where = ''; $this->field = ''; $this->limit = ''; //拼接sql $sql = "select ".$f." from ".$this->tableName. $w .$l; // echo $sql; //发送sql指令 $result = mysql_query($sql); //判断 if($result){ $res = array(); while($row = mysql_fetch_assoc($result)){ $res[] = $row; 4000 } return $res; }else{ return false; } } //声明where方法 public function where($w){ $this->where = $w; return $this; } //声明field方法 public function field($f){ $this->field = $f; return $this; } //声明limit方法 public function limit($l){ $this->limit = $l; return $this; } //获取表条数总数 public function count(){ //拼接sql $sql = "select count(*) as total from ".$this->tableName; //发送 $result = mysql_query($sql); //判断 if($result){ $res = mysql_fetch_assoc($result); return $res['total']; }else{ return false; } } } //实例化对象 // $user = new Model('user'); //添加操作 // $arr = array('username'=>'admin','password'=>'admin','a'=>100); // $res = $user->add($arr); //删除 // $res = $user->delete(10000); // var_dump($res); //更新操作 // $arr = array('username'=>'admin','password'=>'admin','uid'=>1,'a'=>100); // $user->save($arr); //查询单条数据 // $res = $user->find(59000); //查询多条数据 // $res = $user->where('uid>10')->field('uid,username,password')->limit(10)->select(); // var_dump($res); // $res2 = $user->select(); // var_dump($res2); //获取总数 // $count = $user->count(); // var_dump($count); ?>
相关文章推荐
- Android之获取手机上的图片和视频缩略图thumbnails
- 数据库链接字符串查询网站
- DB2实例管理
- DB2实例管理
- 保障MySQL数据安全的14个最佳方法
- mysql问答汇集
- 第三章 数据库备份和还原
- 创建一个空的IBM DB2 ECO数据库的方法
- Access 2000 数据库 80 万记录通用快速分页类
- 开通一个数据库失败的原因的和解决办法
- 一个简单的asp数据库操作类
- CentOS下DB2数据库安装过程详解
- EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页
- sql2008 还原数据库解决方案
- Oracle 数据库自动存储管理-安装配置
- Oracle数据库执行脚本常用命令小结
- Oracle 数据库 临时数据的处理方法
- 数据库分页查询语句数据库查询
- 最近比较流行的数据库挂马