php 封装mysql 数据库操作类

<?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;
    }
}

时间: 2024-10-10 06:33:15

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

php pdo mysql数据库操作类

原文:php pdo mysql数据库操作类 findAll(array( 'field'=>'ID,albumName,albumImage, mainActor,directors,tags,info,area, keywords,wflag,year,mod_version,totalDuration', 'where'=>$where, 'order'=>'flag desc,hit_count desc', 'limit'=>"{$limit['offset']

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

待续... index.php 调用方法: <?php header('Content-Type:text/html; charset=utf8'); require 'instance.php'; $db = MySQLDB::getInstance('127.0.0.1:3306', 'root', '123456', 'test'); $db->insertData(); instance.php 单例操作类: <?php /** * 单例模式MySQL数据库操作类 */ clas

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

使用过ThinkPHP框架的同学可能会对于其中数据库模型操作特别有好感,ThinkPHP提供了数据库操作的简单的操作,对于连接数据库,数据库的增删改查等数据操作都非常的nice,同时支持连贯操作,对于那些不习惯写sql语句的同学真是大大的便利.(注:sql还是很重要的,不要因为用了框架就把原先的忘了). 而在笔者使用php操作redis实现后台任务的过程中,也想要借助这种便利,但无奈redis操作单独的类,直接访问其中的controller文件的话,总是会提示M方法失败,导致此模型方法不能使用.

php中mysql数据库操作类

talk less and show code: <?php/** *以下代码用于数据库操作类的封装* * @author rex<[email protected]> * @version 1.0* @since 2015*/ class Mysql{ //数据库连接返回值 private $conn; /*** [构造函数,返回值给$conn]* @param [string] $hostname [主机名]* @param [string] $username[用户名]* @par

自己封装的ASP.NET的MYSQL的数据库操作类

/** * 作者:牛腩 * 创建时间:2010年3月7日17时35分 * 类说明:对MYSQL数据库的操作类 */ using System; using System.Data; using MySql.Data.MySqlClient; namespace Niunan.BYLW.Utility { /// <summary>对MYSQL数据库的操作类 /// /// </summary> public class MYSQLHelper { private MySqlConn

面向对象基础----封装数据库操作类

思考:现在掌握了很多面向对象相关的内容,但是什么时候封装类?怎么封装?如果使用类成员? 引入:其实类的封装没有多么复杂,但是需要一个熟练的过程来确定哪些东西可以放到类里,该用什么样的形式等.我们通过封装一个数据库的操作来综合练习下 封装数据库类 掌握 定义:封装数据库操作类,即根据数据库的操作需求,来确认数据库操作类该有什么样的功能,以及这些功能该如何实现. 1.一个类通常就是一个文件,所以要先确定文件的名字:通常类文件命名规范有两种. 文件名字与类名一样,如Sql.php 为了区分普通php文

【discuzX2】/source/class/class_core.php文件中数据库操作类DB及db_mysql分析

<?php /** * Discuz MySQL 类的支持 程序中一般不直接使用此类,而是使用DB类,DB类对db_mysql类中的方法又进行了二次封装 * */ class db_mysql { var $tablepre; var $version = ''; var $querynum = 0; var $slaveid = 0; var $curlink; var $link = array(); var $config = array(); var $sqldebug = array(

PHP单例模式的数据库操作类

自己练习写的单例模式的数据库操作类 1 <?php 2 //先建立单模:三私(私有变量.私有构造函数.私有的__clone函数)一公(公有方法),再封装连接数据库,以及返回结果 3 class MySQLDB{ 4 //定义连接数据库需要用到的私有属性 5 private $host; //主机id 6 private $port; //端口号 7 private $user; //用户 8 private $psw; //密码 9 private $dbname; //数据库名称 10 pri

PHP 数据库操作类:ezSQL

EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.html ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.oracle8/9 .interbase.FireBird.PostgreSQL.MS-SQL.sqlite.sqlite C++). 在你的脚本开头是要包含一个一个PHP文件.然后,你就可以使用更小.更容易的一套ezsql函数来代替标准的PHP数据库函数. 它会自动缓存的查询结果,提供了一系列简单