文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

php如何封装数据库增删改的类

2023-07-05 14:58

关注

本文小编为大家详细介绍“php如何封装数据库增删改的类”,内容详细,步骤清晰,细节处理妥当,希望这篇“php如何封装数据库增删改的类”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

1.为什么需要封装数据库类?

通常情况下,在进行数据库操作时,我们会在应用程序的主要逻辑中进行操作,比如在控制器中操作数据库。但实际上,这种方式存在几个明显的问题:

综上所述,我们有必要将我们的数据库操作代码封装起来,让它们成为一个独立的模块。这个模块需要具有以下几个特点:

2.封装数据库增删改类的基本思路

针对上面提到的问题,我们可以把类写成php库的形式,以便实现类的复用。封装数据库增删改类的基本思路如下:

下面是一个简单的db类的实现:

class db {  private $db_host;  private $db_user;  private $db_pass;  private $db_name;  private $conn;  function __construct($db_host, $db_user, $db_pass, $db_name) {    $this->db_host = $db_host;    $this->db_user = $db_user;    $this->db_pass = $db_pass;    $this->db_name = $db_name;  }  // 数据库连接方法  function connect() {    $this->conn = mysqli_connect($this->db_host, $this->db_user, $this->db_pass, $this->db_name);    if (!$this->conn) {      throw new Exception('数据库连接失败');    }    mysqli_query($this->conn, "SET NAMES 'utf8'");  }  // 数据库关闭方法  function close() {    mysqli_close($this->conn);  }  // 查询方法,参数化查询  function query($sql, $params) {    $stmt = mysqli_prepare($this->conn, $sql);    if (!$stmt) {      throw new Exception('query error: '.mysqli_error($this->conn));    }    if (count($params) > 0) {      call_user_func_array('mysqli_stmt_bind_param', array_merge(array($stmt, str_repeat('s', count($params))), $params));    }    $result = mysqli_stmt_execute($stmt);    if (!$result) {      throw new Exception('query error: '.mysqli_stmt_error($stmt));    }    $rows = array();    $meta = mysqli_stmt_result_metadata($stmt);    if ($meta) {      while ($field = mysqli_fetch_field($meta)) {        $params[] = &$row[$field->name];      }      call_user_func_array(array($stmt, 'bind_result'), $params);      while (mysqli_stmt_fetch($stmt)) {        $rows[] = $row;      }    }    mysqli_stmt_close($stmt);    return $rows;  }  // 增加方法,参数化查询  function insert($table, $data) {    $sql = 'INSERT INTO '.$table.' ('.implode(',', array_keys($data)).') VALUES ('.implode(',', array_fill(0, count($data), '?')).')';    $result = $this->query($sql, array_values($data));    return mysqli_affected_rows($this->conn);  }  // 更新方法  function update() {    // 实现更新方法  }  // 删除方法  function delete() {    // 实现删除方法  }}

3.使用封装好的类

当我们需要对数据库进行增删改查时,只需要引入db类,然后实例化即可。比如:

require_once 'db.php';$db = new db('localhost', 'root', 'root', 'test');$db->connect();$sql = 'INSERT INTO `user`(`name`, `age`) VALUES (?, ?)';$data = array('Tom', '18');$db->query($sql, $data);$db->close();

读到这里,这篇“php如何封装数据库增删改的类”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯