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

时间: 2024-10-09 09:57:09

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

实例讲解如何使用C++操作MySQL数据库类

用C++操作MySQL数据库类: 注释:这几个类对处理不是很大数据量的操作是很理想的, 但不适宜特大型的数据的查询,因为源码中将查询到的数据直接放入了内存. /* *  project: *           通用模块 ( 用 c++ 处理  mysql 数据库类,像ADO ) *                  *  description: * *           通过DataBase,RecordSet,Record,Field类,实现对mysql数据库的操作 *    包括连接.

Python快速学习第九天--安装并操作Mysql数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载

【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数据库

python操作mysql数据库 Python 标准数据库接口为 Python DB-API,Python DB-API为开发人员提供了数据库应用编程接口. Python 数据库接口支持非常多的数据库,你可以选择适合你项目的数据库: GadFly mSQL MySQL PostgreSQL Microsoft SQL Server 2000 Informix Interbase Oracle Sybase 你可以访问Python数据库接口及API查看详细的支持数据库列表. 不同的数据库你需要下载

Linux下使用Python操作MySQL数据库

安装mysql-python 1.下载mysql-python 打开终端: cd /usr/local sudo wget http://nchc.dl.sourceforge.net/sourceforge/mysql-python/MySQL-python-1.2.2.tar.gz 官网地址:http://sourceforge.net/projects/mysql-python/ 2.解压 sudo tar -zxvf MySQL-python-1.2.2.tar.gz cd MySQL-

Java使用Jdbc操作MySql数据库(一)

这个示例是Java操作MySql的基本方法. 在这个示例之前,要安装好MySql,并且配置好账户密码,创建一个logininfo数据库,在数据库中创建userinfo数据表.并且在表中添加示例数据. 一.首先将mysql-connector-java-5.1.26-bin.jar开发包复制到lib文件夹中,并且Build Path->Add Build Path. 二.创建User类,用于封装从数据库读出来的数据. 1 package com.mylx.database; 2 3 public

Java 操作MySql数据库

Java 项目开发中数据库操作是很重要的一个方面,对于初学者来说,MySql是比较容易熟悉的一种常见数据库,这篇文章记录了如何用Java来操作MySql数据库. 第一章 JDBC的概念 JDBC(Java Database Connectivity)是连接Java和数据库的纽带,简单的说,就是Java利用JDBC API屏蔽掉了底层数据库具体实现的差异.对于不同的数据库,Java的操作方式是不同的,这样有两个优点: 简化了访问数据库的程序代码,无须涉及与底层数据库实现相关的细节 可以在同一个Ja