PHP值mysql操作类

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 2016/6/27
 * Time: 18:55
 */

Class Mysqls{

    private  $table; //表
    private  $opt;

    public  function __construct($host,$user,$pwd,$name,$table_names)
    {
        $this->db=new mysqli($host,$user,$pwd,$name);  //数据库连接

        if(mysqli_connect_errno()){
            echo "数据库连接错误".mysqli_connect_errno();
            exit();
        }
        $this->db->query("set names utf8");
        $this->table=$table_names;
        $this->opt[‘field‘]="*";
        $this->opt[‘where‘]=$this->opt[‘Order‘]=$this->opt[‘Limit‘]=$this->opt[‘Group‘]=‘‘;
//        var_dump($this->opt[‘where‘]);
       //$this->M($table_names);

    }

    //数据库连接
//    protected  function M($table_name){
//        $this->db=new mysqli(DBHOST,DBUSER,DBPWD,DBNAME);
//
//        if(mysqli_connect_errno()){
//            echo "数据库连接错误".mysqli_connect_errno();
//            exit();
//        }
//        $this->db->query("set names utf8");
//        $this->table=$table_name;
//    }

    //表中的字段

    public function tbField(){
        $desc=$this->db->query("DESC {$this->table}");
        $fieldArr=array();
        while(($row=$desc->fetch_assoc())!=false){
            $fieldArr[]=$row[‘Field‘];
        }
       // var_dump($fieldArr);
        return $fieldArr;
    }

    //查询字段
    public function field($filed){
        //拆分字段
        $filedArr=is_string($filed)?explode(",",$filed):$filed;
        if(is_array($filedArr)){
            $filed=‘‘;
            foreach($filedArr as $v){
                $filed.="‘".$v."‘".",";
            }
        }
        //var_dump($filed);
        return rtrim($filed,",");

    }

    //判断字段是否存在
    public function isfield($fileds)
    {
        $filedArr=is_string($fileds)?explode(",",$fileds):$fileds;
        $tbFiled=$this->tbField();
        //var_dump( $tbFiled);
        foreach($filedArr as $v){
            if(!in_array($v,$tbFiled)){
                 echo "字段输入发错";
            }
        }

    }
    //条件语句
    public function where($where){
          $this->opt[‘where‘]=is_string($where)?" WHERE {$where}":"不是字符串";
        return $this;

    }
    //Limit
    public function Limit($limit){
          $this->opt[‘Limit‘]=is_string($limit)?" Limit {$limit}":"不是字符串";
        return $this;

    }
    public function Order($order){
          $this->opt[‘Order‘]=is_string($order)?" Order By {$order}":"不是字符串";
        return $this;

    }
    public function Group($group){
        $this->opt[‘Group‘]=is_string($group)?" Group BY {$group}":"不是字符串";
        return $this;

    }

    // 查询字符串
    public function select(){
        $sql="select * from {$this->table} {$this->opt[‘where‘]} {$this->opt[‘Group‘]} {$this->opt[‘Limit‘]} {$this->opt[‘Order‘]}";
        return $this->fetch($sql);
    }
    //结果集查询
    public function fetch($sql){
        $result=$this->db->query($sql);
        $sqlarr=array();
        while(($row=$result->fetch_assoc())!=false){
            $sqlarr[]=$row;
        }
       // var_dump($sqlarr);
        return $sqlarr;
    }
    //无结果集查询
    public function querys($sql){
        $sqls=$this->db->query($sql);
        return $this->db->affected_rows;
    }

    //删除语句
    public function delete($where=array()){
        if($where==""  && empety($this->opt[‘where‘])) die(" 不能为空");
        if($where!=""){
            if(is_array($where)){
                $where=implode(",",$where);
            }
            $this->opt[‘where‘]=" WHERE id IN({$where})";
        }
        $sql="delete from {$this->table} {$this->opt[‘where‘]} {$this->opt[‘Limit‘]}";
       var_dump($sql);
        //return $this->query($sql);
    }
    //数组键名
    public function key($key){
        if(!is_array($key))die("非法数组");
        $keys="";
        foreach($key as $v){
           $keys.=$v.",";

        }
        return rtrim($keys,",");
    }
    //数组值
    public function value($value){
        if(!is_array($value))die("非法数组");
        $strvalue="";
        foreach($value as $v){
            $strvalue.="‘".$v."‘".",";
        }
        return rtrim($strvalue,",");
    }

    //添加语句
    public function add($filed){
        if(!is_array($filed)) die("非法数组");
        $fileds=$this->key(array_keys($filed));  //返回数组中的键名
        //var_dump($fileds);
        $values=$this->value(array_values($filed));
        $sql="insert into {$this->table}({$fileds})VALUES($values)";
        //var_dump($sql);
        return $this->querys($sql);
    }

    //查找单条记录
    public function find($field,$id){
        $sql="select {$this->opt[‘field‘]} from {$this->table} {$this->where($field.‘=‘."‘".$id."‘")}";
        var_dump($sql);
        return $this->fetch($sql);

    }
    //更新语句
    public function save($arrs){
        if(!is_array($arrs))die("非法的数组");
        //if(empty($this->opt[‘where‘]))die("条件不能为空");
        $str="";
        while(list($k,$v)=each($arrs))
        {
            $str="{$k}="."‘{$v}‘,";
        }
        $str=rtrim($str,",");
        $sql="Update {$this->table} set {$str}{$this->opt[‘where‘]}";

        return $this->querys($sql);

    }
    //获取总记录数
    public function counts(){

        $sql="select ‘id‘ from {$this->table}{$this->opt[‘where‘]}";
        //var_dump($sql);
        return $this->querys($sql);
    }

}

$db=new Mysqls(‘127.0.0.1‘,‘root‘,‘‘,‘mysql‘,‘user‘);

 写的一部分有问题 参考了别人一部分

时间: 2024-10-13 01:15:53

PHP值mysql操作类的相关文章

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主

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操作类

亲自测试,网上其他版本没法用,有很多错误,这是本人亲自测试用的,绝对增删改查都可以. <?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 = "

MySQL操作类的封装(PHP)

<?php class mysql{ /** * 报错函数 * * @param string $error */ function err($error){ die("对不起,您的操作有误,错误原因为:".$error);//die有两种作用 输出 和 终止 相当于 echo 和 exit 的组合 } /** * 连接数据库 * * @param string $dbhost 主机名 * @param string $dbuser 用户名 * @param string $db

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

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

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

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 字

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;