浅谈PHP值mysql操作类


Posted in PHP onJune 29, 2016

浅谈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');

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

以上就是小编为大家带来的浅谈PHP值mysql操作类全部内容了,希望大家多多支持三水点靠木~

PHP 相关文章推荐
php之curl实现http与https请求的方法
Oct 21 PHP
phpmyadmin中禁止外网使用的方法
Nov 04 PHP
PHP时间和日期函数详解
May 08 PHP
PHP实现的简单缓存类
Jul 29 PHP
PHP类的声明与实例化及构造方法与析构方法详解
Jan 26 PHP
Symfony学习十分钟入门经典教程
Feb 03 PHP
PHP 极验验证码实例讲解
Sep 29 PHP
PHP合并数组的2种方法小结
Nov 24 PHP
thinkphp下MySQL数据库读写分离代码剖析
Apr 18 PHP
[原创]php实现数组按拼音顺序排序的方法
May 03 PHP
php中Ioc(控制反转)和Di(依赖注入)
May 07 PHP
PHP设计模式(六)桥连模式Bridge实例详解【结构型】
May 02 PHP
验证token、回复图文\文本、推送消息的实用微信类php代码
Jun 28 #PHP
php 在字符串指定位置插入新字符的简单实现
Jun 28 #PHP
PHP数组实例详解
Jun 26 #PHP
php微信开发之批量生成带参数的二维码
Jun 26 #PHP
php日期操作技巧小结
Jun 25 #PHP
php项目开发中用到的快速排序算法分析
Jun 25 #PHP
php函数传值的引用传递注意事项分析
Jun 25 #PHP
You might like
PHP 基于文件头的文件类型验证类函数
2012/05/01 PHP
PHP制作图形验证码代码分享
2014/10/23 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
thinkphp 框架数据库切换实现方法分析
2020/05/18 PHP
jquery获取ASP.NET服务器端控件dropdownlist和radiobuttonlist生成客户端HTML标签后的value和text值
2010/06/28 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
jquery取消选择select下拉框示例代码
2014/02/22 Javascript
html5+javascript制作简易画板附图
2014/04/25 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
Node.js实现JS文件合并小工具
2016/02/02 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
2016/03/08 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
JS实现复制功能
2017/03/01 Javascript
jquery仿苹果的时间/日期选择效果
2017/03/08 Javascript
浅谈JavaScript的innerWidth与innerHeight
2017/10/12 Javascript
深入浅出理解JavaScript高级定时器原理与用法
2018/08/02 Javascript
Electron-vue脚手架改造vue项目的方法
2018/10/22 Javascript
浅谈layer弹出层按钮颜色修改方法
2019/09/11 Javascript
详解element-ui级联菜单(城市三级联动菜单)和回显问题
2019/10/02 Javascript
vue项目页面嵌入代码块vue-prism-editor的实现
2020/10/30 Javascript
[00:30]塑造者的传承礼包-戴泽“暗影之焰”套装展示视频
2014/04/04 DOTA
python去除文件中空格、Tab及回车的方法
2016/04/12 Python
Python 做曲线拟合和求积分的方法
2018/12/29 Python
Python实现的序列化和反序列化二叉树算法示例
2019/03/02 Python
Python Lambda函数使用总结详解
2019/12/11 Python
Python模拟登入的N种方式(建议收藏)
2020/05/31 Python
推荐技术人员一款Python开源库(造数据神器)
2020/07/08 Python
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
本科生的职业生涯规划范文
2014/01/09 职场文书
2015年除四害工作总结
2015/07/23 职场文书
党员反腐倡廉学习心得体会
2015/08/15 职场文书
上班旷工检讨书
2015/08/15 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
网络新闻该怎么写?这些写作技巧你都知道吗?
2019/08/26 职场文书
详解Js模块化的作用原理和方案
2021/04/29 Javascript
MySQL的join buffer原理
2021/04/29 MySQL