博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
php实现简单链式操作mysql数据库类
阅读量:4994 次
发布时间:2019-06-12

本文共 4626 字,大约阅读时间需要 15 分钟。

1 
null, 14         'orderBy' => null, 15         'limit'   => null, 16     ]; 17 18 19     public function __construct($tablename = '') { 20         global $dbConfig; 21         $this->dbConfig = $dbConfig; 22         $this->tablename = $dbConfig['DB_PREFIX'].$tablename; 23         $this->user = $dbConfig['DB_USER']; 24         $this->host = $dbConfig['DB_HOST']; 25         $this->password = $dbConfig['DB_PWD']; 26         $this->database = $dbConfig['DB_NAME']; 27         $dsn = 'mysql:dbname='.$this->database.';host='.$this->host.';port=3306'; 28         try { 29             $this->conn = new PDO($dsn, $this->user, $this->password); // also allows an extra parameter of configuration 30         } catch(PDOException $e) { 31             die('Could not connect to the database:
' . $e); 32         } 33     } 34 35     public function table($tablename) { 36         $this->tablename = $this->dbConfig['DB_PREFIX'].$tablename; 37         return $this; 38     } 39 40     public function getAll($fields = '*') { 41         $querySql = sprintf("SELECT %s FROM %s", $fields, $this->tablename); 42         if(!empty($this->sql['where'])) { 43             $querySql .= ' WHERE ' . $this->sql['where'];  44         } 45         if(!empty($this->sql['orderBy'])) { 46             $querySql .= ' ORDER BY ' . $this->sql['orderBy'];  47         } 48         if(!empty($this->sql['limit'])) { 49             $querySql .= ' LIMIT ' . $this->sql['limit'];  50         } 51         return $this->query($querySql); 52     } 53 54     public function getOne($fields = '*') { 55         $result = $this->getAll($fields); 56         return isset($result[0]) ? $result[0] : null; 57     } 58 59     public function insert($data) { 60         foreach ($data as $key => &$value) { 61             $value = addslashes($value); 62         } 63         $keys = "`".implode('`,`', array_keys($data))."`"; 64         $values = "'".implode("','", array_values($data))."'"; 65         $querySql = sprintf("INSERT INTO %s ( %s ) VALUES ( %s )", $this->tablename, $keys, $values); 66         return $this->query($querySql); 67     } 68 69     public function delete() { 70         $querySql = sprintf("DELETE FROM %s WHERE ( %s )", $this->tablename, $this->sql['where']); 71         return $this->query($querySql); 72     } 73 74     public function update($data) { 75         $updateFields = []; 76         foreach ($data as $key => $value) { 77             $up_value = addslashes($value); 78             $updateFields[] = "`$key`='$up_value'"; 79         } 80         $updateFields = implode(',', $updateFields); 81         $querySql = sprintf("UPDATE %s SET %s", $this->tablename, $updateFields); 82 83         if(!empty($this->sql['where'])) { 84             $querySql .= ' WHERE ' . $this->sql['where'];  85         } 86 87         return $this->query($querySql); 88     } 89 90     public function query($querySql) { 91         $querystr = strtolower(trim(substr($querySql,0,6))); 92         $stmt = $this->conn->prepare($querySql); 93         $ret = $stmt->execute(); 94 95         if(!$ret) print_r($stmt->errorInfo()); 96 97         if($querystr == 'select') { 98             $retData = $stmt->fetchAll(PDO::FETCH_ASSOC); 99             return $retData;100         }elseif($ret && $querystr == 'insert') {101             return $this->conn->lastInsertId();102         }else{103             return $ret;104         }105     }106 107 108     public function limit($limit, $limitCount = null) {109         if(!$limitCount) {110             $this->sql['limit'] = $limit;111         }else{112             $this->sql['limit'] = $limit .','. $limitCount;113         }114         return $this;115     }116 117     public function orderBy($orderBy) {118         $this->sql['orderBy'] = $orderBy;119         return $this;120     }121 122     public function close() {123         return $this->conn = null;124     }125 126     public function where($where) {127         if(!is_array($where)) {128             return null;129         }130         $crondsArr = [];131         foreach ($where as $key => $value) {132             $fieldValue = $value;133             if(is_array($fieldValue)) {134                 $crondsArr[] = "$key ".$fieldValue[0]. ' ' . addslashes($fieldValue[1]);135             }else{136                 $fieldValue = addslashes($fieldValue);137                 $crondsArr[] = "$key='$fieldValue'";138             }139         }140         $this->sql['where'] = implode(' AND ', $crondsArr);141 142         return $this;143     }144     145 }

 

转载于:https://www.cnblogs.com/chbyl/p/10199151.html

你可能感兴趣的文章
DHCP Option 60 认识
查看>>
浅析连续子向量,子数组和(一维,二维)问题
查看>>
C/C++中各种类型int、long、double、char表示范围(最大最小值)
查看>>
Linux环境下Eclipse + Tomcat + MySQL 配置J2EE开发环境的方法
查看>>
机器学习实战:第九章 树回归
查看>>
while(~scanf("%d %d",&a,&b))和while(scanf("%d %d",&a,&b)!=EOF)
查看>>
使用vs code开发纸壳CMS并启用Razor智能提示
查看>>
动态投资回收期Pt小于计算期n
查看>>
Python模拟登入豆瓣网,并爬取小组信息
查看>>
初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
查看>>
@import与link的区别与选择
查看>>
ORA-14411 该 DDL 不能与其他 DDL 并行运行处理办法
查看>>
C#筛法求出范围内的所有质数
查看>>
程序员常用的几款软件
查看>>
noi2014 起床困难综合症
查看>>
.NET ->> 分享一个字符串模糊匹配指数的方法
查看>>
HDU2907凸包+凹面
查看>>
BZOJ 1600: [Usaco2008 Oct]建造栅栏
查看>>
BZOJ 1574: [Usaco2009 Jan]地震损坏Damage
查看>>
Tiny4412 LED 程序
查看>>