<?php
header('content-type:text/html;charset=utf-8');
//封装mysql   连接数据库php_mysql
//封装mysql   连接数据库php_mysqli
//封装mysql   连接数据库php_pdo
class db{
    //三私一共
    //私有的静态属性
    private static $dbcon = false; //存储数据库连接对象
    //私有的构造方法
    private function __construct(){
        //创建链接
        $dbcon=mysql_connect('127.0.0.1','root','root');
        //选择数据库
        mysql_select_db('yii_back',$dbcon) or die('mysql connect error');
        //设置字符集
        mysql_query('set names utf8');
    }
    //私有的clone
    private function __clone(){}
    //共有的静态方法
    public static function getInstance(){
        if(self::$dbcon == false){
            self::$dbcon = new self;
        }
        return self::$dbcon;
    }

/**
    *执行sql语句
    *@param $sql
    *@return source
    **/
    public function query($sql){
        //通过mysql_query来实现
        $query = mysql_query($sql);
        
        //返回执行结果
        return $query;
    }

/**
     * 查询某个字段  eg:  select  name  select count(*)
     *@param $sql
     *@return string or int
    **/
    public function getOne($sql){
        $query=$this->query($sql);
        //有可能出现错误
        if(!$query){
            //SQL语句有错
            echo 'SQL语句错误!<br/>';
            echo '错误编号:' . mysql_errno() . '<br/>';
            echo '错误原因:' . mysql_error() . '<br/>';
            exit;
        }    
        return mysql_result($query,0);
    }

/**
     * 查询一行记录
     *@param $sql
     *@return array 一维数组
     *mysql_fetch_assoc  mysql_fetch_array  mysql_fetch_row
    **/
    public function getRow($sql,$type="assoc"){
        $query=$this->query($sql);
        if(!in_array($type,array('assoc','array','row'))){
            die('mysql_query error!');
        }
        $funcname = "mysql_fetch_".$type;
        return $funcname($query);
    }

/**
     * 查询多条记录
     *@param $sql
     *@return array 二维数组
     *mysql_fetch_assoc  mysql_fetch_array  mysql_fetch_row
    **/
    public function getAll($sql){
        //调用sql 执行函数
        $query=$this->query($sql);
        $list=array();
        //遍历结果
        //while($arr = $this->getRowFromSource($query)){
        while($arr = mysql_fetch_assoc($query)){
            $list[]=$arr;
        }
        return $list;
    }

/**
     * 获得上一次插入的id
    **/
    public function getInsertId(){
        return mysql_insert_id();
    }

/**
     * 新增数据方法
     * @param1 string $sql,要执行的SQL语句
     * @param1 array  $data,要添加的数据
     * @return 自增长id
    **/
    public function insert($table,$data=array()){  
        //print_r($data);die;
        $sql="insert into ".$table."(".implode(',',array_keys($data)).") values ('".implode("','",array_values($data))."')";
        //调用sql 执行函数
        $query=$this->query($sql);
        if($query){
            //返回数据
            return mysql_insert_id();  //得到上次操作的自增长ID
        }else{
            return $sql;
        }
    }

/**
     * 修改数据方法
     * @param string $table 操作的数据表名
     * @param array $data 操作的数据
     * @param array $condition 条件
    **/
    public function update($table,$data,$condition=array()){
        $where='';
        if(!empty($condition)){   
            foreach($condition as $k=>$v){
                $where.=$k."='".$v."' and ";
            }
            $where='where '.$where .'1=1';
        }
        $updatastr = '';
        if(!empty($data)){
            foreach($data as $k=>$v){
                $updatastr.= $k."='".$v."',";
            }
            $updatastr = 'set '.rtrim($updatastr,',');
        }
        $sql = "update {$table} {$updatastr} {$where}";
        $query=$this->query($sql);
        if($query){
            echo '修改成功';
        }else{
            return $sql;
        }
    }

/**
     * 删除数据方法
     * @param string $table 操作的数据表名
     * @param array  $condition 删除的条件
     */
    public function delete($table,$condition){
        $where='';
        if(!empty($condition)){     
            foreach($condition as $k=>$v){
                $where.=$k."='".$v."' and ";
            }
            $where='where '.$where .'1=1';
        }
        $sql="delete from {$table} {$where}";
        $query=$this->query($sql);
        if($query){
            echo '删除成功';
        }else{
            return $sql;
        }
    }

/**
     * 查询数据方法
     * @param string $table 操作的数据表名
     * @param array  $condition 查询的条件
     * @param array  $field     要查询的字段
     */
    public function select($table,$condition=array(),$field = array()){
        $where='';
        if(!empty($condition)){
             
            foreach($condition as $k=>$v){
                $where.=$k."='".$v."' and ";
            }
            $where='where '.$where .'1=1';
        }
        $fieldstr = '';
        if(!empty($field)){
            foreach($field as $k=>$v){
                $fieldstr.= $v.',';
            }
            $fieldstr = rtrim($fieldstr,',');
        }else{
            $fieldstr = '*';
        }
        $sql = "select {$fieldstr} from {$table} {$where}";
        $query=$this->query($sql);
        $resultRow = array();
        $i = 0;
        while($row=mysql_fetch_assoc($query)){
            foreach($row as $k=>$v){
                $resultRow[$i][$k] = $v;
            }
            $i++;
        }
        return $resultRow;
    }
}

php 封装mysql 数据库操作类的更多相关文章

  1. php 封装Mysql数据库操作类

    花了点时间写了个基于php5.3的Mysql类 $mysql = new Mysql('host','user','pass','db') bool Mysql::insert("表&quo ...

  2. php : mysql数据库操作类演示

    设计目标: 1,该类一实例化,就可以自动连接上mysql数据库: 2,该类可以单独去设定要使用的连接编码(set names XXX) 3,该类可以单独去设定要使用的数据库(use XXX): 4,可 ...

  3. php MySQL数据库操作类源代码

    php MySQL数据库操作类源代码: <?php class MySQL{ private $host; //服务器地址 private $name; //登录账号 private $pwd; ...

  4. 设计模式 - 单例模式mysql数据库操作类

    待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php ...

  5. MySQL数据库操作类(PHP实现,支持连贯操作)

    <?php /** * Author: suvan * CreateTime: 2018/2/27 * description: 数据库操作类(仅对接MySQL数据库,主要利用MySQLi函数) ...

  6. php pdo mysql数据库操作类

    <?php namespace iphp\core; use iphp\App; /** * 数据库操作基类 基于pdo * @author xuen * 支持链式操作,支持参数绑定 * 说明1 ...

  7. C# MySQL 数据库操作类

    using System; using System.Configuration; using System.Collections; using System.Data; using MySql.D ...

  8. DELPHI XE MYSQL数据库操作类 MYSQLHELPER

    注: 无需odbc配置 {* * MySQL Helper v1.0 * 2015.6.19 * 说明: * 这是一个操作MySQL的类,该类必须和libmysql.dll,dbxmys.dll两个文 ...

  9. php中用面向对象的思想编写mysql数据库操作类

    最近刚入门完mysql,正好学了一阵子php就想着如何把mysql的表信息用php打印页面上.现在就把代码贴出来,以便小伙伴们参考. 先是建立mysql连接: /*建立连接*/ class datab ...

随机推荐

  1. lua 初接触 --- The first time use Lua for programing

    The first time use Lua for programing Wang Xiao 1. 关于 lua 的变量类型:  lua 变量的定义与matlab有点不同: local d , f ...

  2. CentOS6.4安装Golang环境

    什么是Go? Go是一门并发支持.垃圾回收的编译型的系统编程语言,目的是为了创造一门具有在静态编译语言的高性能和动态语言的高效开发之间拥有良好平衡点的一门编程语言. Go的主要特点有哪些? 类型安全和 ...

  3. elasticsearch介绍集群,模拟横向扩展节点、节点宕机、改变分片

        出处:[http://www.cnblogs.com/dennisit/p/4133131.html] ,防楼主删博,故保留一份! elasticsearch用于构建高可用和可扩展的系统.扩展 ...

  4. Python学习笔记——文件

    1.文件只是连续的字节序列 open()内建函数是打开文件之门的钥匙 file_obj=open(file_name,access_mode='r/w/a,' buffering=-1) file_n ...

  5. 在数据库查询时解决大量in 关键字的方法

    有时候在前台界面需要批量处理一些数据时,经常要用到update table set fields=value where keyid in ('1','2',....) 但如果这个数据量如果超过100 ...

  6. HTML 元素

    HTML 文档是由 HTML 元素定义的. HTML 元素 HTML 元素指的是从开始标签(start tag)到结束标签(end tag)的所有代码. 开始标签 元素内容 结束标签 <p> ...

  7. Hibernate延迟加载机制详解

    摘自 http://blog.chinaunix.net/uid-20577907-id-3129234.html 1 延迟加载: 延迟加载机制是为了避免一些无谓的性能开销而提出来的,所谓延迟加载就是 ...

  8. IOS开发-视频,音频,录音简单总结

    /***** * 1. 视频播放 * *  @格式:mp4 mov m4v m2v 3gp 3g2 * *  @系统框架使用:#import <MediaPlayer/MediaPlayer.h ...

  9. LintCode "Longest Increasing Continuous subsequence II" !!

    DFS + Memorized Search (DP) class Solution { int dfs(int i, int j, int row, int col, vector<vecto ...

  10. 战胜忧虑<1>——不要让忧郁侵入你的生活

    1.不要让忧郁侵入你的生活. 备注:忧郁:一种情绪与心理状态,指一个人呈现哀伤.心情低落的状况,绝望与沮丧为其特色. 解决方法:奥斯勒博士说的那样:用铁门把过去和未来隔断,生活在完全独立的今天. 现在 ...