php中关于MySQLI函数封装的数据库连接工具类的使用详解

这篇文章主要介绍了PHP基于MySQLI函数封装的数据库连接工具类,结合实例形式分析了php封装mysqli函数实现的数据库操作类定义及连接、增删改查数据库等基本操作用法,需要的朋友可以参考下
本文实例讲述了PHP基于MySQLI函数封装的数据库连接工具类。分享给大家供大家参考,具体如下:

mysql.class.php:

class mysql

{

  private $mysqli;

  private $result;

  /**

   * 数据库连接

   * @param $config 配置数组

   */

  public function connect($config)

  {

    $host = $config['host'];    //主机地址

    $username = $config['username'];//用户名

    $password = $config['password'];//密码

    $database = $config['database'];//数据库

    $port = $config['port'];    //端口号

    $this->mysqli = new mysqli($host, $username, $password, $database, $port);

  }

  /**

   * 数据查询

   * @param $table 数据表

   * @param null $field 字段

   * @param null $where 条件

   * @return mixed 查询结果数目

   */

  public function select($table, $field = null, $where = null)

  {

    $sql = "SELECT * FROM {$table}";

    if (!empty($field)) {

      $field = '`' . implode('`,`', $field) . '`';

      $sql = str_replace('*', $field, $sql);

    }

    if (!empty($where)) {

      $sql = $sql . ' WHERE ' . $where;

    }

    $this->result = $this->mysqli->query($sql);

    return $this->result->num_rows;

  }

  /**

   * @return mixed 获取全部结果

   */

  public function fetchAll()

  {

    return $this->result->fetch_all(MYSQLI_ASSOC);

  }

  /**

   * 插入数据

   * @param $table 数据表

   * @param $data 数据数组

   * @return mixed 插入ID

   */

  public function insert($table, $data)

  {

    foreach ($data as $key => $value) {

      $data[$key] = $this->mysqli->real_escape_string($value);

    }

    $keys = '`' . implode('`,`', array_keys($data)) . '`';

    $values = '\'' . implode("','", array_values($data)) . '\'';

    $sql = "INSERT INTO {$table}( {$keys} )VALUES( {$values} )";

    $this->mysqli->query($sql);

    return $this->mysqli->insert_id;

  }

  /**

   * 更新数据

   * @param $table 数据表

   * @param $data 数据数组

   * @param $where 过滤条件

   * @return mixed 受影响记录

   */

  public function update($table, $data, $where)

  {

    foreach ($data as $key => $value) {

      $data[$key] = $this->mysqli->real_escape_string($value);

    }

    $sets = array();

    foreach ($data as $key => $value) {

      $kstr = '`' . $key . '`';

      $vstr = '\'' . $value . '\'';

      array_push($sets, $kstr . '=' . $vstr);

    }

    $kav = implode(',', $sets);

    $sql = "UPDATE {$table} SET {$kav} WHERE {$where}";

    $this->mysqli->query($sql);

    return $this->mysqli->affected_rows;

  }

  /**

   * 删除数据

   * @param $table 数据表

   * @param $where 过滤条件

   * @return mixed 受影响记录

   */

  public function delete($table, $where)

  {

    $sql = "DELETE FROM {$table} WHERE {$where}";

    $this->mysqli->query($sql);

    return $this->mysqli->affected_rows;

  }

}

使用方法:

require_once 'mysql.class.php';

/* 配置连接参数 */

$config = array(

  'type' => 'mysql',

  'host' => 'localhost',

  'username' => 'woider',

  'password' => '3243',

  'database' => 'php',

  'port' => '3306'

);

/* 连接数据库 */

$mysql = new mysql();

$mysql->connect($config);

/* 查询数据 */

//1、查询所有数据

$table = 'mysqli';//数据表

$num = $mysql->select($table);

echo '共查询到' . $num . '条数据';

print_r($mysql->fetchAll());

//2、查询部分数据

$field = array('username', 'password'); //过滤字段

$where = 'id % 2 =0';          //过滤条件

$mysql->select($table, $field, $where);

print_r($mysql->fetchAll());

/* 插入数据 */

$table = 'mysqli';//数据表

$data = array(  //数据数组

  'username' => 'admin',

  'password' => sha1('admin')

);

$id = $mysql->insert($table, $data);

echo '插入记录的ID为' . $id;

/* 修改数据 */

$table = 'mysqli';//数据表

$data = array(

  'password' => sha1('nimda')

);

$where = 'id = 44';

$rows = $mysql->update($table, $data, $where);

echo '受影响的记录数量为' . $rows . '条';

/* 删除数据 */

$table = 'mysqli';

$where = 'id = 45';

$rows = $mysql->delete($table, $where);

echo '已删除' . $rows . '条数据';

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

室内手绘入门教程视频课程

2021-3-25 0:00:00

未整理

私域流量如何引流?私域流量实战营,7 天收获属于您的私域流量池

2021-3-27 0:00:00

0 条回复 A文章作者 M管理员
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索