protea_ban 发表于 2017-1-30 20:06

【笔记】php学习之自定义mysql操作类

<?php

/**
* Created by PhpStorm.
* Date: 2017/1/16
* Time: 16:36
*/
class mysql
{
    /**
   * 报错函数
   *
   * @paramstring $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 resource 返回执行成功的资源符或执行失败
   */
    function query($sql){
      if(!($query = mysql_query($sql))){
            $this -> err($sql."<br />".mysql_error());
      }else{
            return $query;
      }
    }

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

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

    /**
   * @param resource $query    sql语句通过mysql_query执行出来的资源
   * @param int $row
   * @param int $filed
   * @return 返回指定行的指定字段的值
   */

    function findResult($query,$row = 0,$filed = 0){
      $rs = mysql_result($query,$row,$filed);
      return $rs;

    }

    /**
   * 添加函数
   *
   * @param string $table 表名
   * @param array $arr
   * @return int
   * 添加数组(包含字段和值的一维数组)
   */
    function insert($table,$arr){
      //$sql="insert into 表名(多个字段)values(多个值)"
      foreach ($arr as $key=>$value){
            $value = mysql_real_escape_string($value);
            $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.")";
      $this -> query($sql);//调用类自身的query(执行)方法执行这条sql语句
      return mysql_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;//修改操作 格式
            $this -> query($sql);
      }
    }


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



}

zqjyh 发表于 2017-1-30 21:26

protea_ban 发表于 2017-1-30 21:21
恩 学习php必须经过的一个过程

对,可惜当时学的时候并没有写过。还是重新写一下 巩固一下才好

zhaogang5807 发表于 2017-1-30 20:14

protea_ban 发表于 2017-1-30 20:15

zhaogang5807 发表于 2017-1-30 20:14
楼主 真刷漆

哈哈 其实是为了备份 感觉以后会用的到

psx1lin 发表于 2017-1-30 20:56

教程很详细

唯有我最酷 发表于 2017-1-30 21:06

前来围观

zqjyh 发表于 2017-1-30 21:07

可以,学习了

protea_ban 发表于 2017-1-30 21:21

zqjyh 发表于 2017-1-30 21:07
可以,学习了

恩 学习php必须经过的一个过程

小小欣 发表于 2017-1-30 22:34

我觉得我的php白学了................

逗啊逗 发表于 2017-1-30 23:19

我好像学了假的php
页: [1] 2
查看完整版本: 【笔记】php学习之自定义mysql操作类