您好,登錄后才能下訂單哦!
<?php //數(shù)據(jù)庫單表操作類 define("HOST","localhost"); define("USER","root"); define("PASS",""); define("DBNAME","lamp78"); class Db { protected $link; //連接資源 protected $tablename; //表名 protected $pk='id'; //主鍵字段名 protected $fields=array(); //當(dāng)前表的字段信息 protected $where=array();//封裝搜索條件屬性 protected $order=null; //排序?qū)傩? protected $limit=null; //分頁屬性(獲取部分?jǐn)?shù)據(jù)) public function __construct($tablename) { $this->tablename = $tablename; // 數(shù)據(jù)庫連接 $this->link=@mysql_connect(HOST,USER,PASS) or die('數(shù)據(jù)庫連接失?。?); mysql_set_charset("utf8"); mysql_select_db(DBNAME,$this->link); //獲取當(dāng)前表的結(jié)構(gòu)和主鍵名 $this->getFields(); } //私有方法,加載當(dāng)前表中的所有字段信息 private function getFields(){ $sql = "desc {$this->tablename}"; $result = mysql_query($sql,$this->link); //解析表結(jié)構(gòu)信息 while($row = mysql_fetch_assoc($result)){ $this->fields[]=$row['Field']; //獲取字段名 //判斷并獲取主鍵名 if($row['Key']=="PRI"){ $this->pk = $row['Field']; } } mysql_free_result($result); } //封裝各種條件或獲取所有對應(yīng)數(shù)據(jù)信息 public function select() { $list = array(); //拼裝sql語句 $sql ="select * from {$this->tablename}"; //判斷并封裝where條件 if(count($this->where)>0){ $sql.=" where ".implode(" and ",$this->where); } //判斷并封裝order排序條件 if($this->order){ $sql.=" order by ".$this->order; } //判斷并封裝分頁條件 if($this->limit){ $sql.=" limit ".$this->limit; } //執(zhí)行查詢,獲取數(shù)據(jù)。 $result = mysql_query($sql,$this->link); echo $sql; //解析結(jié)果集 while($row = mysql_fetch_assoc($result)){ $list[]=$row; } mysql_free_result($result); //釋放結(jié)果集 return $list; } //獲取封裝條件的總數(shù)據(jù)條數(shù) public function total() { $list = array(); //拼裝sql語句 $sql ="select count(*) from {$this->tablename}"; //判斷并封裝where條件 if(count($this->where)>0){ $sql.=" where ".implode(" and ",$this->where); } //執(zhí)行查詢,獲取數(shù)據(jù)。 $result = mysql_query($sql,$this->link); return mysql_result($result,0,0); } //獲取所有數(shù)據(jù) public function findAll() { $list = array(); //拼裝sql語句 $sql ="select * from {$this->tablename}"; //執(zhí)行查詢,獲取數(shù)據(jù)。 $result = mysql_query($sql,$this->link); //解析結(jié)果集 while($row = mysql_fetch_assoc($result)){ $list[]=$row; } mysql_free_result($result); //釋放結(jié)果集 return $list; } /** * 獲取指定id號的單條數(shù)據(jù)信息 * @param int id 獲取信息的主鍵id值。 * @return array 返回值,找到數(shù)據(jù)則返回數(shù)組,否則返回null */ public function find($id) { $sql = "select * from {$this->tablename} where {$this->pk}={$id}"; //執(zhí)行查詢 $result = mysql_query($sql,$this->link); //判斷是有信息 if($result && mysql_num_rows($result)>0){ return mysql_fetch_assoc($result); }else{ return null; } } //執(zhí)行刪除 public function delete($id) { $sql = "delete from {$this->tablename} where {$this->pk}={$id}"; //執(zhí)行刪除 mysql_query($sql,$this->link); //返回影響行數(shù) return mysql_affected_rows($this->link); } //執(zhí)行信息添加 public function insert($data=array()){ //判斷參數(shù)是否有值,若沒有則嘗試從post自己獲取 if(empty($data)){ $data = $_POST; } //過濾所有字段 $fieldlist = array(); $valuelist = array(); foreach($data as $k=>$v){ //判斷是否是有效字段 if(in_array($k,$this->fields)){ $fieldlist[] = $k; $valuelist[] = $v; } } //拼裝sql語句 $sql = "insert into {$this->tablename}(".implode(",",$fieldlist).") values('".implode("','",$valuelist)."')"; echo $sql; //執(zhí)行添加 mysql_query($sql,$this->link); //返回自增信息 return mysql_insert_id($this->link); } //執(zhí)行信息修改 public function update($data=array()){ //判斷參數(shù)是否有值,若沒有則嘗試從post自己獲取 if(empty($data)){ $data = $_POST; } //過濾所有字段 $fieldlist = array(); foreach($data as $k=>$v){ //判斷是否是有效字段 if(in_array($k,$this->fields) && $k!=$this->pk){ $fieldlist[] = "{$k}='{$v}'"; } } //拼裝sql語句 $sql = "update {$this->tablename} set ".implode(",",$fieldlist)." where {$this->pk}=".$_POST[$this->pk]; echo $sql; //執(zhí)行添加 mysql_query($sql,$this->link); //返回自增信息 return mysql_insert_id($this->link); } //封裝搜索條件方法 public function where($data) { $this->where[]=$data; return $this; } //封裝排序方法 public function order($data) { $this->order=$data; return $this; } //封裝分頁方法 public function limit($m,$n=0) { if($n>0){ $this->limit = $m.",".$n; }else{ $this->limit = $m; } return $this; } }
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。