php实现简单链式操作mysql数据库类

  1 <?php
  2 $dbConfig = require_once(dirname(__FILE__).‘/config.php‘);
  3
  4 class Db{
  5     public $conn;
  6     private $host = null;
  7     private $user     = null;
  8     private $password = null;
  9     private $database = null;
 10     private $tablename = null;
 11     private $dbConfig = null;
 12     private $sql = [
 13         ‘where‘   => 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:<br/>‘ . $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

时间: 12-30

php实现简单链式操作mysql数据库类的相关文章

【php】php操作MySQL数据库

一.操作步骤: 1. 连接MySQL数据库并判断是否连接成功2. 选择数据库3. 设置字符集4. 准备SQL语句5. 向MySQL服务发送SQL语句6. 解析处理结果集7. 释放结果集,关闭数据库连接 二.常用操作: 1. mysqli_connect();--连接数据库,并返回一个连接资源 格式: mysql_connect(主机名,用户,密码); --其中参数可选,若不写则参考php.ini中默认配置 2. mysqli_error(); --获取刚刚(最后)执行数据库操作的错误信息 3.

python3操作MySQL数据库

安装PyMySQL 下载地址:https://pypi.python.org/pypi/PyMySQL 1.把操作Mysql数据库封装成类,数据库和表先建好 import pymysql.cursors # ======== Setting linked test databases =========== host = '192.168.17.123' user = 'root' password = '123456' db='polls' # ======== MySql base oper

本地通过Eclipse链接Hadoop操作Mysql数据库问题小结

前一段时间,在上一篇博文中描述了自己抽时间在构建的完全分布式Hadoop环境过程中遇到的一些问题以及构建成功后,通过Eclipse操作HDFS的时候遇到的一些问题,最近又想进一步学习学习Hadoop操作Mysql数据库的一些知识,在这里网上存在很多分歧,很多人可能会笑话,用那么“笨重”的Hadoop来操作数据库,脑子有问题吧,Hadoop的HDFS优势在于处理分布式文件系统,这种说法没有任何错误,数据库的操作讲究“安全.轻便.快捷”,用Hadoop操作完全是不符合常理啊,那为啥还要学习这个东西呢

python操作mysql数据库

连接数据库 输入值 存入数据库 关闭 import string import mysql.connector conn=mysql.connector.connect(user='root',password='test',database='dalian',use_unicode=True) cursor=conn.cursor() a=raw_input('enter an id: ') b=raw_input('enter a name: ') while(a!='quit' or b!

Windows下安装MySQLdb, Python操作MySQL数据库的增删改查

这里的前提是windows上已经安装了MySQL数据库,且配置完毕,能正常建表能操作.在此基础上只需安装MySQL-python-1.2.4b4.win32-py2.7.exe就ok了,只有1M多.这个有点类似jdbc里的那个jar包. 下载链接:http://sourceforge.net/projects/mysql-python/ , 百度云盘 :http://pan.baidu.com/s/1dDgnfpR 密码:7bna 接着import MySQLdb就能使用了,下面给出测试代码:

使用python操作mysql数据库

这是我之前使用mysql时用到的一些库及开发的工具,这里记录下,也方便我查阅. python版本: 2.7.13 mysql版本: 5.5.36 几个python库 1.mysql-connector-python 是MySQL官方的Python驱动 https://dev.mysql.com/doc/connector-python/en/ 安装: pip install mysql-connector 示例代码: https://github.com/mike-zhang/pyExample

c语言操作mysql数据库

c语言操作Mysql数据库,主要就是为了实现对数据库的增.删.改.查等操作,操作之前,得先连接数据库啊,而连接数据库主要有两种方法.一.使用mysql本身提供的API,在mysql的安装目录中可可以看到大量的头文件.lib文件.dll文件,这说明mysql原生就支持了c语言,操作起来相当简单.二.使用win32 api(这里只探讨windows平台),主要是ODBC. ODBC API 接口是(Open Database Connectivity)开放式数据库接口,它建立了一组规范,并提供了一组

PHP操作MySQL数据库的相关函数

首先,要分清SQL语句的类型: SQL语句的分类 (1)DDL:Data Define Language,数据定义语言--定义表的列结构 CREATE.DROP.ALTER.TRUNCATE (2)DML:Data Manipulate Language,数据操作语言--操作表的记录行 INSERT.DELETE.UPDATE (3)DQL:Data Query Language,数据查询语言--不影响表的行和列 SELECT (4)DCL:Data Control Language,数据控制语

mysqli扩展库操作mysql数据库

配置环境 配置php.ini文件让php支持mysqli扩展库 extension=php_mysqli.dll 建库建表 详见博客 “mysql扩展库操作mysql数据库” 查询数据库 1 <?php 2 //mysqli扩展库操作mysql数据库,面向对象 3 $mysqli=new MySQLi("localhost","root","root","test"); 4 if($mysqli->connect_

[PHP]PHP编程操作Mysql数据库的三种方式

当我开始去接触PHP的时候,真切的感受到其所具有的魅力,本着学习的态度和打破固有的语言和模式的想法,开始了PHP之旅,总的来说,走的还是比较顺利,在其中能够看到C,Java,Perl影子,学习曲线不大,但是做好产品仍然有着一条漫漫长路. 多余的话不说了,慢慢感受和领悟,本文主要讲述PHP操作数据库的三种扩展. 如下图是PHP访问数据库的三种扩展方式: 下面举出三种方式访问数据库并查询数据的实例代码: 1.mysql扩展 <?php //1:获取数据库连接 $connection = @ mysq