php+mysql封装增删查改
生活随笔
收集整理的這篇文章主要介紹了
php+mysql封装增删查改
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
2019獨角獸企業重金招聘Python工程師標準>>>
簡介:這個主要是分享一下給還在研究原生php的MYSQL操作方法封裝的朋友。為什么我們要把查詢語句封裝起來呢?一切從簡, 說白了就是懶,少干點事。其實這樣開發真的很高效,但需要團隊開發的話就需要一份詳細的文檔了。下面的這個類里封裝了包括 增、刪、查、改、執行原生sql語句、上傳文件,批量上傳文件、分頁等基本的方法。<?phpclass lu_page extends lu_db {private $showPage;private $sPage;private $pageoffset;function __construct( $table,$showPage=15 ){$this->table = $table;$this->showPage = $showPage;}//連接數據庫public function connect(){$this->conn = new mysqli($this->DBHOST, $this->DBUSER, $this->DBPWD, $this->DBNAME);}//執行查詢原生sql語句public function selectsql($sql){$this->connect();$res = $this->conn->query($sql);$row = $res->fetch_all();return $row;}//執行增加、修改、刪除原生sql語句public function aed($sql){$this->connect();$res = $this->conn->multi_query($sql);if($res){echo "<script>alert('操作成功');</script>";}else{echo "<script>alert('操作失敗');</script>";}}//插入一條記錄public function insert($key,$file,$path=null){$this->connect();$sql = "insert into ".$this->table."(";if(!empty($key) || $key!=null){$i = 0;foreach($key as $item=>$value){$tempItem[$i] = $item;$tempValue[$i] = $value;$i++;}foreach($tempItem as $index=>$value){if($index == "0"){$sql1 = $value;}else{$sql1 .= ",".$value;}}foreach($tempValue as $index=>$value){if($index == "0"){$sql2 = "'{$value}'";}else{$sql2 .= ",'{$value}'";}}}$sql3 ="";$sql4 ="";if(!empty($file) || $file!=null){foreach($file as $item=>$value){$sql3 .= ",".$item;$imgUrl = $this->uploadFile($value,$path);$sql4 .= ",'{$imgUrl}'";}}$sql .=$sql1.$sql3.") values(".$sql2.$sql4.")";$res = $this->conn->multi_query($sql);if($res){echo "<script>alert('提交成功');</script>";}else{echo "<script>alert('提交失敗');</script>";}}//更新一條記錄public function update($key,$where,$file = null,$path=null){$this->connect();$sql = "UPDATE ".$this->table." SET ";if(is_array($key)){$i = 0;foreach($key as $item=>$value){if($i == 0) {$sql .= $item . "='" .$value."'";}else{$sql .= ",".$item . "='" .$value."'";}$i++;}}else{$sql .= "".$key."";}if(!empty($file) || $file!=null){foreach($file as $item=>$value){$imgUrl = $this->uploadFile($value,$path);$sql .= ",".$item."='".$imgUrl."'";}}$sql .= " where ".$where;$res = $this->conn->multi_query($sql);if($res){echo "<script>alert('提交成功');</script>";}else{echo "<script>alert('提交失敗');</script>";}return $message;}/* 查詢數據庫key為需要查詢的值page為當前頁數showPage一頁展示多少how如何排序*/private function select($key,$name,$type){$sql = "select ";if(is_array($key)){foreach($key as $index=>$value){if($index == 0){$sql .= "$value";}else{$sql .= ","."$value";}}}else{$sql .= "".$key."";}$sql .= " from ".$this->table;if(!empty($name) || $name!=null){$sql .= " where ";foreach($name as $item=>$value){if($value == "or" || $value == "and"){$sql .= " ".$value." ";}else {if($type == "like"){$sql .= $item . " ".$type." " . "'%".$value."%'";}else{$sql .= $item . " ".$type." " . "'".$value."'";}}}}return $sql;}//分頁public function page($key,$name,$page=null,$how=null,$type=null){$this->connect();$sql = $this->select($key,$name,$type);$count = $this->select("count(*)",$name,$type);if($how != null){$sql .= " ".$how."";}$page ? $page: $page=1;$first = ($page-1)*$this->showPage;$sql .= " limit $first,$this->showPage";$res = $this->conn->query($sql);$num = $this->conn->query($count);$row = $res->fetch_all();$count = $num->fetch_assoc();$this->sPage = ceil($count["count(*)"]/$this->showPage);return $row;}//獲取頁碼public function pageNumber($page){$page_banner="<div style='text-align:center'>";$this->pageoffset=($this->showPage-1)/2;if($page>1){$page_banner.="<a style='border:#333 1px solid; border-radius:4px; text-decoration:none; padding:2px 5px 2px 5px; margin:2px;' href='".$_SERVER['PHP_SELF']."?p=1'>首頁</a>";$page_banner.="<a style='border:#333 1px solid; text-decoration:none; padding:2px 5px 2px 5px; margin:2px;' href='".$_SERVER['PHP_SELF']."?p=".($page-1)."'>上一頁</a>";}else{$page_banner.="<span style='border:#eee 1px solid; border-radius:4px; padding:2px 5px 2px 5px; margin:2px; color:#999;'>首頁</span>";$page_banner.="<span style='border:#eee 1px solid; padding:2px 5px 2px 5px; margin:2px; color:#999;'>上一頁</span>";}$start=1;$end=$this->sPage;if($this->sPage > $this->showPage){if($page > ($this->pageoffset + 1)){$page_banner.="...";}if($page > $this->pageoffset){$start=$page - $this->pageoffset;$end=$this->sPage > $page+$this->pageoffset ? $page+$this->pageoffset:$this->sPage;}else{$start=1;$end=$this->sPage > $this->showPage ? $this->showPage : $this->sPage;}if($page + $this->pageoffset > $this->sPage){$start=$start - ($page + $this->pageoffset - $end);}}for($i=$start;$i<=$end;$i++){if($page==$i){$page_banner.="<span style='border:#333 1px solid; background-color:#333; padding:3px 6px 3px 6px; margin:2px; color:#fff; font-weight:bold;'>{$i}</span>";}else{$page_banner.="<a style='border:#333 1px solid; text-decoration:none; padding:2px 5px 2px 5px; margin:2px;' href='".$_SERVER['PHP_SELF']."?p=".$i."'>{$i}</a>";}}if($this->sPage > $this->showPage&&$this->sPage > $page + $this->pageoffset){$page_banner.="...";}if($page < $this->sPage){$page_banner.="<a style='border:#333 1px solid; text-decoration:none; padding:2px 5px 2px 5px; margin:2px;' href='".$_SERVER['PHP_SELF']."?p=".($page+1)."'>下一頁</a>";$page_banner.="<a style='border:#333 1px solid; border-radius:4px; text-decoration:none; padding:2px 5px 2px 5px; margin:2px;' href='".$_SERVER['PHP_SELF']."?p=".($this->sPage)."'>尾頁</a>";}else{$page_banner.="<span style='border:#eee 1px solid; border-radius:4px; padding:2px 5px 2px 5px; margin:2px; color:#999;'>尾頁</a></span>";$page_banner.="<span style='border:#eee 1px solid; padding:2px 5px 2px 5px; margin:2px; color:#999;'>下一頁</a></span>";}$page_banner.="共 {$this->sPage} 頁.";/*$page_banner.="<form style='display:inline;' action='kecheng.php' method='get'>";$page_banner.="到第<input type='text' name='p'>頁";$page_banner.="<button type='submit' value='確定'>確定</button>";$page_banner.="</form></div>";*/return $page_banner;}//檢查上傳文件信息并返回文件名public function uploadFile($fileInfo,$path,$allowExt=array("png","jpg","mp4","fla","swf","gif","psd","doc","txt"),$maxSize=1512000,$imgFlag=true){//判斷下錯誤信息if($path == null){$path = "../upload";}if($fileInfo['error']==0){$ext=$this->getExt($fileInfo['name']);//限制上傳文件類型if(!in_array($ext,$allowExt)){exit ("非法文件類型");}if($fileInfo['size']>$maxSize){exit ("文件過大");}$filename=$this->getUniName().".".$ext;if(!file_exists($path)){mkdir($path,0777,true);}$destination=$path."/".$filename;if(is_uploaded_file($fileInfo['tmp_name'])){if(move_uploaded_file($fileInfo['tmp_name'], $destination)){}else{$mes="文件移動失敗";echo "<script>alert('上傳失敗');</script>";}}else{$mes="文件不是通過HTTP POST方式上傳上來的";die($mes);}}else{switch($fileInfo['error']){case 1:echo "<script>alert('超過了配置文件上傳文件的大小');</script>";//UPLOAD_ERR_INI_SIZEbreak;case 2:echo "<script>alert('超過了表單設置上傳文件的大小');</script>";//UPLOAD_ERR_FORM_SIZEbreak;case 3:echo "<script>alert('部分文件被上傳');</script>";//UPLOAD_ERR_PARTIALbreak;case 4:echo "<script>alert('沒有文件被上傳');</script>";//UPLOAD_ERR_NO_FILEbreak;case 6:echo "<script>alert('沒有找到臨時目錄');</script>";//UPLOAD_ERR_NO_TMP_DIRbreak;case 7:echo "<script>alert('文件不可寫');</script>";//UPLOAD_ERR_CANT_WRITE;break;case 8:echo "<script>alert('PHP的擴展程序中斷了上傳');</script>";//UPLOAD_ERR_EXTENSIONbreak;}die($mes);}return $destination;}/*** 生成唯一字符串* @return string*/private function getUniName(){return md5(uniqid(microtime(true),true));}/*** 得到文件的擴展名* @param string $filename* @return string*/private function getExt($filename){return strtolower(end(explode(".",$filename)));} }轉載于:https://my.oschina.net/luqiuren666/blog/860208
總結
以上是生活随笔為你收集整理的php+mysql封装增删查改的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: rmdir命令--Linux命令应用大词
- 下一篇: 完整学习git五git重置