封装MySQL函数

下面对增删改查几个数据库操作进行封装,

因为在前面用PHP对mysql进行增删改查会发现代码很多重复的,

所以要把那几个常用的封装成函数

function.php

//声明编码
header("Content-Type:text/html;charset=utf-8");


//单条查询
function find($sql = null)
{
    //引入全局变量
    global $conn;
    $res = mysqli_query($conn, $sql);
    if(!$res)
    {
        echo "SQL语句执行失败:".$sql;
        exit;
    }

    //返回数据
    return mysqli_fetch_assoc($res);
}

//多条查询
function all($sql = null)
{
    //引入全局变量
    global $conn;
    $res = mysqli_query($conn, $sql);
    if(!$res)
    {
        echo "SQL语句执行失败:".$sql;
        exit;
    }

    // 多条数据就是要循环
    $list = [];

    while($data = mysqli_fetch_assoc($res))
    {
        $list[] = $data;
    }

    //返回数据
    return $list;
}


// 插入函数
function add($table, $data)
{
    // INSERT INTO 表名(`字段1`,`字段2`,`字段3`)VALUES('值1','值2','值3')
    global $conn;
    global $pre_;

    //给表名拼接上表前缀
    $table = $pre_.$table;

    //将数组里面的索引全部提取出来变成一个新数组
    $keys = array_keys($data);

    //数组变成字符串
    $fields = "`".implode("`,`", $keys)."`";

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

    $sql = "INSERT INTO $table($fields)VALUES($values)";

    //执行语句
    $res = mysqli_query($conn, $sql);

    if(!$res)
    {
        echo "SQL语句执行失败:".$sql;
        exit;
    }

    //返回插入ID
    return mysqli_insert_id($conn);
}

//更新
function update($table, $data, $where = 1)
{
    //UPDATE 表名 SET `字段1` = '值1', `字段2` = '值2' WHERE 条件
    global $conn;
    global $pre_;

    //拼接表名
    $table = $pre_.$table;

    //直接组装
    $str = "";

    foreach($data as $key=>$item)
    {
        $str .= "`$key` = '$item',";
    }

    $str = trim($str, ",");

    //组装sql语句
    $sql = "UPDATE $table SET $str WHERE $where";

    //执行sql
    $res = mysqli_query($conn, $sql);

    if(!$res)
    {
        echo "SQL语句执行失败:".$sql;
        exit;
    }

    //返回影响行数
    return mysqli_affected_rows($conn);
}


//删除
function del($table, $where = 1)
{
    //DELETE FROM 表名 WHERE where
    global $conn;
    global $pre_;

    $table = $pre_.$table;

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

    //执行sql
    $res = mysqli_query($conn, $sql);

    if(!$res)
    {
        echo "SQL语句执行失败:".$sql;
        exit;
    }

    //返回影响行数
    return mysqli_affected_rows($conn);
}

config.php

<?php
    header("Content-Type:text/html;charset=utf-8");
    /* 
    连接数据库
        host        主机地址
        username    用户名
        password    密码
        dbname      默认使用数据库
        port        连接到 MySQL 服务器的端口
        socket      socket 或要使用的已命名 pipe
    */
    $conn=mysqli_connect('localhost','root','root');
    if(!$conn){//如果连接数据库失败
        echo "错误码:". mysqli_connect_errno();
        echo "错误:". mysqli_connect_error();
        exit;
    }

    //选择数据库
    mysqli_select_db($conn, "company");
    //设置默认客户端字符集
    mysqli_set_charset($conn,"utf8");
    // 引入function函数库
    include_once('function.php');



?>

test.php

<?php
    include_once('config.php');
    //新增数据
    $data=array(
        'name'=>'市场部'
    );
    $res = add('pre_department',$data);
    if($res){
        echo '成功';
    }else{
        echo '失败';
    }

    //修改数据 假如修改市场部的名称 在这里id为28,以你的数据为准
    $savedata=array(
        'name'=>'市场二部'
    );
    $res = update('pre_department',$savedata,'id=28');
    if($res){
        echo '成功';
    }else{
        echo '失败';
    }
    //查询全部数据
    $sql = "select * from `pre_department`";
    $data = all($sql);
    var_dump($data);

    //查询单条数据
    $sql = "select * from `pre_department` where id=28";
    $data = find($sql);
    var_dump($data);
?>
powered by GitbookEdit Time: 2023-04-08 10:28:32