php数据库的类
来源:互联网 发布:有人买过淘宝店吗 编辑:程序博客网 时间:2024/06/06 02:21
<?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; } 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); ?>
0 0
- php数据库的类
- php 数据库的封装类
- PHP数据库类的封装
- PHP数据库类的封装
- php操作数据库的类
- PHP连接数据库的类
- PHP的数据库访问类,MYSQL的
- PHP连接MYSQL的数据库类文件!
- [转]改进的PHP文本数据库类
- PHP操作XML做数据库的类
- PHP操作XML做数据库的类
- [转]改进的PHP文本数据库类
- 一个简单的PHP数据库访问类
- 实现PHP访问MYSQL数据库的类
- PHP中数据库类库的使用
- php封装操作数据库的类
- php在线备份数据库的类
- php实现封装数据库的类文件
- 在javascript中字符串转换成数字
- 矩阵取数游戏 [Codevs 1166]
- View转换Bitmap
- 黑马程序员-计算从你出生到今天为止的总天数?
- Docker实战(六):Docker安装Redis
- php数据库的类
- Python遍历文件夹
- 1049. Counting Ones (30)
- Docker实战(七):Docker安装MongoDB
- jquery实现抽屉式特效
- Leetcode 367. Valid Perfect Square
- Android中如何杀死后台应用而不自启动
- linux 相关命令 (慢慢更新)
- 每天一个linux命令(1):ls命令