MySQL操作类的封装(PHP)

<?php
class mysql{

    /**
     * 报错函数
     *
     * @param string $error
     */
    function err($error){
        die("对不起,您的操作有误,错误原因为:".$error);//die有两种作用 输出 和 终止   相当于  echo 和 exit 的组合
    }

    /**
     * 连接数据库
     *
     * @param string $dbhost 主机名
     * @param string $dbuser 用户名
     * @param string $dbpsw  密码
     * @param string $dbname 数据库名
     * @param string $dbcharset 字符集/编码
     * @return bool  连接成功或不成功
     **/
    function connect($config){
        extract($config);
        if(!($con = mysql_connect($dbhost,$dbuser,$dbpsw))){//mysql_connect连接数据库函数
            $this->err(mysql_error());
        }
        if(!mysql_select_db($dbname,$con)){//mysql_select_db选择库的函数
            $this->err(mysql_error());
        }
        mysql_query("set names ".$dbcharset);//使用mysql_query 设置编码  格式:mysql_query("set names utf8")
    }
    /**
     * 执行sql语句
     *
     * @param string $sql
     * @return bool 返回执行成功、资源或执行失败
     */
    function query($sql){
        if(!($query = mysql_query($sql))){//使用mysql_query函数执行sql语句
            $this->err($sql."<br />".mysql_error());//mysql_error 报错
        }else{
            return $query;
        }
    }

    /**
    *列表
    *
    *@param source $query sql语句通过mysql_query 执行出来的资源
    *@return array   返回列表数组
    **/
    function findAll($query){
        while($rs=mysql_fetch_array($query, MYSQL_ASSOC)){//mysql_fetch_array函数把资源转换为数组,一次转换出一行出来
            $list[]=$rs;
        }
        return isset($list)?$list:"";
    }

    /**
    *单条
    *
    *@param source $query sql语句通过mysql_query执行出的来的资源
    *return array   返回单条信息数组
    **/
    function findOne($query){
        $rs = mysql_fetch_array($query, MYSQL_ASSOC);
        return $rs;
    }

    /**
    *指定行的指定字段的值
    *
    *@param source $query sql语句通过mysql_query执行出的来的资源
    *return array   返回指定行的指定字段的值
    **/
    function findResult($query, $row = 0, $filed = 0){
        $rs = mysql_result($query, $row, $filed);
        return $rs;
    }

    /**
     * 添加函数
     *
     * @param string $table 表名
     * @param array $arr 添加数组(包含字段和值的一维数组)
     *
     */
    function insert($table,$arr){
        //$sql = "insert into 表名(多个字段) values(多个值)";
        //mysql_query($sql);
        foreach($arr as $key=>$value){//foreach循环数组
            $value = mysql_real_escape_string($value);//转义 SQL 语句中使用的字符串中的特殊字符
            $keyArr[] = "`".$key."`";//把$arr数组当中的键名保存到$keyArr数组当中
            $valueArr[] = "‘".$value."‘";//把$arr数组当中的键值保存到$valueArr当中,因为值多为字符串,而sql语句里面insert当中如果值是字符串的话要加单引号,所以这个地方要加上单引号
        }
        $keys = implode(",",$keyArr);//implode函数是把数组组合成字符串 implode(分隔符,数组)
        $values = implode(",",$valueArr);
        $sql = "insert into ".$table."(".$keys.") values(".$values.")";//sql的插入语句  格式:insert into 表(多个字段)values(多个值)
        $this->query($sql);//调用类自身的query(执行)方法执行这条sql语句  注:$this指代自身
        return mysql_insert_id();//返回上一步 INSERT 操作产生的 ID
    }

    /**
    *修改函数
    *
    *@param string $table 表名
    *@param array $arr 修改数组(包含字段和值的一维数组)
    *@param string $where  条件
    **/
    function update($table,$arr,$where){
        //update 表名 set 字段=字段值 where ……
        foreach($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $keyAndvalueArr[] = "`".$key."`=‘".$value."‘";
        }
        $keyAndvalues = implode(",",$keyAndvalueArr);
        $sql = "update ".$table." set ".$keyAndvalues." where ".$where;//修改操作 格式 update 表名 set 字段=值 where 条件
        $this->query($sql);
    }

    /**
    *删除函数
    *
    *@param string $table 表名
    *@param string $where 条件
    **/
    function del($table,$where){
        $sql = "delete from ".$table." where ".$where;//删除sql语句 格式:delete from 表名 where 条件
        $this->query($sql);
    }

}

?>
时间: 2025-01-04 20:41:25

MySQL操作类的封装(PHP)的相关文章

ecshop的Mysql操作类

摘要,这是直接摘抄的ecshop的mysql操作类:不过他这里的缓存是用的文件缓存,我们如果想直接使用,可以替换成memcache的或者redis的! <?php /** * ECSHOP MYSQL 公用类库 * ============================================================================ * * 版权所有 2005-2012 上海商派网络科技有限公司,并保留所有权利. * 网站地址: http://www.ecsho

Python MySql 操作类

Python 2.7 暂时只用到这么多,以后用到其他的再补充. # -*- coding:utf-8 -*- import MySQLdb import time ''' · MySQL 操作类 · V1.0 ''' class MySQLClass(object): def __init__(self,host,user,password,charset="utf8"): super(MySQLClass, self).__init__() self.host=host self.u

php编写mysql操作类

文件:mysql.class.php <?php error_reporting(E_ALL ^ E_DEPRECATED); /* mysql操作类 * 1.连接数据库 * 2.选择需要操作的库 * 3.设置操作的编码 * 4.增删改查 * 查询分两种情况: * 1.查询一条数据:执行一次mysql_fetch_assoc * 2.查询多跳数据:执行多次mysql_fetch_assoc * 5.关闭数据库 */ class mysql { public $hostname; //mysql主

php 的mysql操作类

亲自测试,网上其他版本没法用,有很多错误,这是本人亲自测试用的,绝对增删改查都可以. <?php /** * Created by Netbeans. * User: Lugo * Date: 16-7-14 * Version: 1.0.0 * Time: 上午10:50 */ class MysqlHelper { const HOST="localhost"; const DATABASE = "demo"; const ENCODING = "

Android适配器之DataModifyHelper数据操作类的封装

编写适配器代码时常常被以下几个问题所困扰: 1.业务层和适配器中对同一组数据进行维护,难以管理 2.在业务层针对数据进行修改后必须通知适配器更新,否则提示The content of the adapter has changed but ListView did not receive anotification 3.业务层修改数据时充斥大量的非空&数据标准化等冗余代码 针对前两个问题,可以将数据交由适配器去管理,业务层对数据的增删改查均通过适配器进行处理,这样仅需要维护好adapter中的数

PHP封装的一个单例模式Mysql操作类

掌握满足单例模式的必要条件----三私一公. ①私有的构造方法-为了防止在类外使用new关键字实例化对象. ②私有的成员属性-为了防止在类外引入这个存放对象的属性. ③私有的克隆方法-为了防止在类外通过clone成生另一个对象. ④公有的静态方法-为了让用户进行实例化对象的操作. DB类及相关表操作: class mysql_db{     //1.私有的静态属性   private static $dbcon = false;     //2.私有的构造方法   private functio

php封装mysql操作类

<?php class mysql{ private $host; private $name; private $pass; private $table; private $ut; function __construct($host,$name,$pass,$table,$ut){ $this->host=$host; $this->name=$name; $this->pass=$pass; $this->table=$table; $this->ut=$ut;

php for mysql 操作类

1 <?php 2 defined('TOKEN') or die('Hacker intrusion'); 3 class dbm { 4 private static $_instance = false; //连接实例 5 private $linkid = ''; //当前的连接资源 6 private $dbname = ''; //数据库名 7 private $tbpre = ''; //表前缀 8 public $sql = array(); //所有执行过的sql 9 publ

C# MySql 操作类

/* MySql 类 */ using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MySql.Data.MySqlClient; using MySql.Data; using System.Data; namespace DbMysql { public class CDbMysql { #region 字