php实现Mysql简易操作类

yizhihongxing

下面是关于“php实现Mysql简易操作类”的攻略,包括实现过程和两个示例说明:

实现Mysql简易操作类

1. 创建数据库连接类

创建一个名为 "DataBase.class.php" 的新文件。在该文件中编写一个名为 "DataBase" 的类。

class DataBase
{
    private $link; //连接变量

    public function __construct($host, $user, $password, $database)
    {
        if (!$this->link = mysqli_connect($host, $user, $password, $database)) {
            throw new Exception('无法连接到数据库!');
        }
        mysqli_set_charset($this->link, 'utf8');
    }
}

2. 增加数据插入方法

新增一个 "insert" 子方法,接受三个参数,表名 "table_name"、插入内容数组 "data" 和插入条件数组 "condition"。

class DataBase
{
    // ...

    public function insert($table_name, $data, $condition = null)
    {
        if (count($data) === 0) {
            throw new Exception('插入内容不能为空!');
        }
        $fields = array_keys($data);
        $values = array_values($data);
        $sql = 'INSERT INTO '. $table_name .' ('. implode(',', $fields) .') VALUES ("'. implode('","', $values) .'")';
        if (is_array($condition)) {
            $sql .= ' WHERE '. key($condition) .'="'. current($condition) .'"';
        }
        if (mysqli_query($this->link, $sql)) {
            return mysqli_insert_id($this->link);
        }
        throw new Exception(mysqli_error($this->link));
    }
}

3. 增加数据查询方法

新增一个 "select" 子方法,接受两个参数,表名 "table_name" 和查询条件数组 "condition"。

class DataBase
{
    // ...

    public function select($table_name, $condition = null)
    {
        $sql = 'SELECT * FROM '. $table_name;
        if (is_array($condition)) {
            $sql .= ' WHERE '. key($condition) .'="'. current($condition) .'"';
        }
        $result = mysqli_query($this->link, $sql);
        if (!$result) {
            throw new Exception(mysqli_error($this->link));
        }
        $rows = array();
        while ($row = mysqli_fetch_assoc($result)) {
            $rows[] = $row;
        }
        return $rows;
    }
}

4. 增加数据更新方法

新增一个 "update" 子方法,接受三个参数,表名 "table_name"、更新内容数组 "data" 和更新条件数组 "condition"。

class DataBase
{
    // ...

    public function update($table_name, $data, $condition)
    {
        if (count($data) === 0) {
            throw new Exception('更新内容不能为空!');
        }
        $key_value_pairs = array();
        foreach ($data as $key => $value) {
            $key_value_pairs[] = $key .'="'. $value .'"';
        }
        $sql = 'UPDATE '. $table_name .' SET '. implode(',', $key_value_pairs) .' WHERE '. key($condition) .'="'. current($condition) .'"';
        if (mysqli_query($this->link, $sql)) {
            return true;
        }
        throw new Exception(mysqli_error($this->link));
    }
}

5. 增加数据删除方法

新增一个 "delete" 子方法,接受两个参数,表名 "table_name" 和删除条件数组 "condition"。

class DataBase
{
    // ...

    public function delete($table_name, $condition)
    {
        $sql = 'DELETE FROM '. $table_name .' WHERE '. key($condition) .'="'. current($condition) .'"';
        if (mysqli_query($this->link, $sql)) {
            return true;
        }
        throw new Exception(mysqli_error($this->link));
    }
}

两个示例说明

示例1:插入数据和查询数据

require_once('DataBase.class.php');

// 连接数据库
$db = new DataBase('localhost', 'root', 'password', 'test_db');

// 插入数据
$data = array(
    'name' => '张三',
    'age' => '20'
);
$insert_id = $db->insert('users', $data);
echo '已插入ID为 '. $insert_id .' 的新数据。'."\n";

// 查询数据
$users = $db->select('users', array('id' => $insert_id));
if (count($users) > 0) {
    echo '查询结果:'."\n";
    print_r($users);
} else {
    echo '未查询到相关数据。'."\n";
}

示例2:更新数据和删除数据

require_once('DataBase.class.php');

// 连接数据库
$db = new DataBase('localhost', 'root', 'password', 'test_db');

// 更新数据
$data = array(
    'name' => '李四',
    'age' => '25'
);
$is_updated = $db->update('users', $data, array('id' => 1));
if ($is_updated) {
    echo 'ID为1的数据已更新。'."\n";
} else {
    echo '数据未更新。'."\n";
}

// 删除数据
$is_deleted = $db->delete('users', array('id' => 2));
if ($is_deleted) {
    echo 'ID为2的数据已删除。'."\n";
} else {
    echo '数据未删除。'."\n";
}

以上是“php实现Mysql简易操作类”的攻略。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:php实现Mysql简易操作类 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • PHP数组与字符串互相转换实例

    下面是“PHP数组与字符串互相转换实例”的攻略: PHP数组与字符串互相转换实例 数组转字符串 使用implode函数 implode函数可以将一个数组转换成字符串,其中可以指定数组元素之间的连接符。 <?php $arr = array(‘apple’, ‘banana’, ‘orange’); $str = implode(‘,’, $arr); …

    PHP 2023年5月26日
    00
  • 解析PHP中如何将数组变量写入文件

    将PHP数组写入文件的过程需要将数组序列化为字符串,然后写入文件中。之后读取文件,将字符串反序列化为数组即可。下面是详细步骤: 序列化数组 使用PHP的serialize()方法将数组序列化为字符串,示例如下: $myArray = array(‘apple’, ‘banana’, ‘orange’); $serializedArray = serializ…

    PHP 2023年5月26日
    00
  • 微信etc怎么激活?微信etc使用教程详解

    微信etc怎么激活? 要使用微信等线上支付方式支付ETC费用,需要先完成ETC账户的激活过程。具体步骤如下: 打开 “全国客户服务热线” 所在的省客服电话,完成ETC账户实名认证。 获得ETC账户名、密码和交易密码后,拨打客服电话进行账户激活。 微信etc使用教程详解 完成ETC账户激活后,就可以使用微信等线上支付方式进行ETC费用缴纳了。具体步骤如下: 打…

    PHP 2023年5月23日
    00
  • PHP循环语句笔记(foreach,list)

    PHP循环语句笔记 在PHP中,循环语句是常用的流程控制语句,用来重复执行一段代码。其中包括for、while、do-while、foreach等不同类型的循环语句。本文将着重介绍PHP中两种常用的循环语句:foreach和list。 foreach循环 foreach循环通常用于遍历数组,格式为: foreach ($array as $value) { …

    PHP 2023年5月26日
    00
  • 深入探讨PHP中的内存管理问题

    深入探讨PHP中的内存管理问题 什么是内存管理 在程序运行过程中,占用系统资源的不仅仅是 CPU 和硬盘等硬件设备,还有内存。内存管理是一种重要的机制,它用来维护程序运行所需的内存空间,并确保内存空间的合理利用。内存管理主要包括分配和释放内存空间两个过程。 PHP中的内存管理 PHP 是一种高级语言,不像 C/C++ 一样直接操作内存,而是把内存管理隐藏在语…

    PHP 2023年5月30日
    00
  • php 求质素(素数) 的实现代码

    下面是详细讲解“php 求质素(素数) 的实现代码”的攻略。 什么是质数 质数,又称素数,指在大于1的自然数中,除了1和该数自身外,无法被其他自然数整除的数。 例如:2、3、5、7、11、13、17、19、23、29、31、37等都是质数。 求质数的方法 目前已知求质数的算法有许多种,例如试除法、线性筛法、厄拉多塞筛法等。在本篇攻略中,我们将介绍如何使用试除…

    PHP 2023年5月23日
    00
  • PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例

    下面我会详细讲解如何实现获取PHP地址的五种方法,并提供插入用户登录日志的操作示例。 获取IP地址的五种方法 1. 使用 $_SERVER[‘REMOTE_ADDR’] 方法 这是 PHP 内置的函数,可以直接获取用户的 IP 地址,代码如下: $ip = $_SERVER[‘REMOTE_ADDR’]; 2. 通过 HTTP 头中的 X-Forwarded…

    PHP 2023年5月26日
    00
  • php 读取文件乱码问题

    下面是详细讲解“php 读取文件乱码问题”的完整攻略。 前言 在使用 PHP 读取文件时,有时会遇到中文乱码的问题,这种情况通常是由于文件本身的编码和 PHP 所使用的编码不一致导致的。 解决方法 以下是两种解决方法,其中方法一适用于文件编码为 GBK 的情况,方法二适用于文件编码为 UTF-8 的情况。 方法一:使用 iconv 转码 如果文件编码为 GB…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部