您好,登錄后才能下訂單哦!
-----------------------------------config.php---------------------------------------------
<?php
//主機名
define('HOST','localhost');
//用戶名
define('USER', 'root');
// 密碼
define('PWD', '123456');
//數據庫
define('DB','ss21');
//字符集
define('CHARSET','utf8');
--------------------------------index.php--------------------------------------------------
<?php
include './config.php';
//echo HOST;exit;
include './Model.class.php';
//實例化對象
$user = new Model('info');
$userlist = $user->select();
var_dump($userlist);
?>
<table>
<tr>
<td>編號</td>
<td>編號</td>
<td>編號</td>
<td>編號</td>
<td>編號</td>
</tr>
<?php foreach($userlist as $val){ ?>
<tr>
<td>編號</td>
<td>編號</td>
<td>編號</td>
<td>編號</td>
<td>編號</td>
</tr>
<?php } ?>
</table>
-------------------------------Model.class.php---------------------------------------------
<?php
//定義一個操作數據庫類
class Model{
public $tabName;//存儲表名的
public $link;//連接數據的對象
public $limit;// 用于存儲要顯示條數
public $fields='*';// 用于存儲要查詢的字段
public $allFields; //緩存數據庫字段
public $order;//用來存儲排序的內容
public $where;//用來存儲where條件
//構造方法里面連接數據庫
public function __construct($tabName){
//初始化數據庫連接
$this->getConnect();
//將你要操作的數據表存儲起來
$this->tabName = $tabName;
//獲取數據庫字段
$this->getFields();
}
//查詢
public function select(){
//5.
$sql="SELECT {$this->fields} FROM {$this->tabName} {$this->where} {$this->order} {$this->limit}";
echo $sql;
return $this->query($sql);
}
//查詢一條結果
public function find($id){
//你查詢的一條結果sql語句
$sql="SELECT {$this->fields} FROM {$this->tabName} WHERE id={$id}";
//調用發送sql語句函數
return $this->query($sql);
//var_dump($list);
}
//統計總條數
public function count(){
//返回值是字符串
$sql="SELECT COUNT(*) total FROM {$this->tabName}";
$list = $this->query($sql);
return $list[0]['total'];
}
//增加
//$data['name']='zhansan';
//$data['age']=18;
//$data['sex']=1;
//$data['city']='沈陽';
public function add($data){
var_dump($data);
$key = array_keys($data);
$value = array_values($data);
$keys=join(',',$key);
$values = join("','",$value);
//var_dump($value);
//var_dump($key);exit;
$sql="INSERT INTO {$this->tabName}({$keys}) VALUES('{$values}')";
//echo $sql;exit;
return $this->execute($sql);
}
//刪除思路 傳遞一個參數 這個參數是id值
public function del($id=''){
//如果你沒有傳遞過來id那么就必須傳遞where條件
if(empty($id)){
$where = $this->where;
}else{
$where = " WHERE id='{$id}'";
}
if(empty($where)){
return '請你傳遞一個條件進來';
}
$sql="DELETE FROM {$this->tabName} {$where}";
return $this->execute($sql);
}
//修改
//修改需要傳遞一個參數 這個參數要是要修改的字段的數組
public function update($arr){
//1.判斷$arr 是不是數組
//2.判斷你是否使用id作為修改內容還是使用where條件作為修改內容
//3.要將你的鍵和你的值拼接在一起 形成 name='zhangsan',sex='1',age='19',city='北京',
//4.將多出來的逗號取掉
//5.將得到的字符串防止到sql語句的set后面
$sql="UPDEATE {$this->tabName} SET WHERE id=";
return $this->execute($sql);
}
//每頁顯示多少條
public function limit($limit){
$this->limit = ' limit '.$limit;
//echo $this->limit;
return $this;
}
//排除的內容應該怎么寫
//order by
public function order($str){
$this->order =" ORDER BY {$str} ";
return $this;
}
//字段過濾 字段篩選 查詢數據庫內容 刪除沒有的字段
public function field($fields=array()){
// var_dump($fields);
if(!is_array($fields)){
//保證連貫操作
return $this;
}
//檢測數據內容刪除沒有的字段
$fields = $this->check($fields);
if(empty($fields)){
return $this;
}
$this->fields = join(',',$fields);
//echo $this->fields;
return $this;
}
//where
//$data['id']=1; id=1
//$data['id']=array('lt','10');
//$data['name']=array('like','張');
public function where($data){
//var_dump($data);exit;
//"where sex =1"
//where字符串拼接
//判斷傳遞過來的必須是一個數組 而且不能為空
if(is_array($data) && !empty($data)){
//接受結果的
$result = array();
//循環傳遞進來的數組得到里面的鍵和值
foreach($data as $key=>$value){
//判斷值是否為數組
if(is_array($value)){
//var_dump($value);exit;
$type = $value[0];
//判斷你是什么樣的條件將你所要的條件進行拼接
switch($type){
case 'like':
$result[]="{$key} LIKE '%{$value[1]}%'";
break;
case 'lt':
$result[]="{$key}<'{$value[1]}'";
break;
case 'gt':
$result[]="{$key}>'{$value[1]}'";
break;
case 'in':
$result[]="{$key} in({$value[1]})";
break;
}
}else{
//等于
$result[]="{$key}='{$value}'";
}
}
//echo ' WHERE '.join(' and ',$result);
//var_dump($result);exit;
}
//exit;
//where sex =1 and age >18;
//先把數組打開出來
$where = ' WHERE '.join(' and ',$result);
//echo $where;exit;
//var_dump($data);
//用來存儲查詢條件
$this->where = $where;
//保證連貫操作
return $this;
}
/****************輔助方法***************************/
//連接數據庫的方法
protected function getConnect(){
$this->link=mysqli_connect(HOST,USER,PWD);
if(mysqli_connect_errno($this->link)){
echo mysqli_connect_error($this->link);exit;
}
mysqli_select_db($this->link,DB);
mysqli_set_charset($this->link,CHARSET);
}
//用于 添加 修改 刪除
public function execute($sql){
$result = mysqli_query($this->link,$sql);
if($result && mysqli_affected_rows($this->link)>0){
if(mysqli_insert_id($this->link)){
return mysqli_insert_id($this->link);
}
return true;
}else{
return false;
}
}
//查詢操作
public function query($sql){
$result = mysqli_query($this->link,$sql);
if($result && mysqli_num_rows($result)>0){
while($row = mysqli_fetch_assoc($result)){
$list[]=$row;
}
}
return $list;
}
//獲取數據庫字段方法
protected function getFields(){
//查看表信息的數據庫語句
$sql="DESC {$this->tabName}";
//發送SQL語句
$result = $this->query($sql);
//新建一個數組 用來存儲數據庫字段
$fields = array();
foreach($result as $value){
//var_dump($value);
$fields[]=$value['Field'];
}
//var_dump($fields);
//設置為緩存字段
$this->allFields = $fields;
}
//檢測字段的方法
public function check($arr){
//遍歷傳遞過來的數組 我們才能拿到數組中的鍵和值
foreach($arr as $key=>$value){
//echo $value.'<br/>';
//判斷 你的值是否在緩存字段的數組中allFields
if(!in_array($value,$this->allFields)){
unset($arr[$key]);
}
}
//var_dump($arr);
return $arr;
}
//析構方法
public function __destruct(){
mysqli_close($this->link);
}
}
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。