数据库增删改查使用的函数封装

<?php

/**
 * 功能:连接数据库
 *参数:数据库[,字符集]
 *返回值:成功返回一个数据库连接,失败返回false
 */
function dbConnect($host,$user,$pwd,$dbname,$charset)
{
    // $config = $GLOBALS['config'];
    // extract($config);
    $link = mysqli_connect($host,$user,$pwd);
    if(!$link){
        return false;
    }
    if(!mysqli_select_db($link,$dbname)){
        return false;
    }
    if(!mysqli_set_charset($link,$charset)){
        return false;
    }
    return $link;
}
/**
 *功能:插入操作
 *参数:数据库的连接,数据表,插入的数据
 *返回值:成功返回true,如果需要返回id则返回id值,失败返回false
*/
function dbInsert($link,$table,$data,$getId=false){
    $data = insertContent($data);
    $table = DB_PREFIX . $table;
    $sql = "insert into $table ($data[0]) values ($data[1])";
    $res = mysqli_query($link,$sql);
    if($res && mysqli_affected_rows($link)){
        if($getId){
            return mysqli_insert_id($link);
        }else{
            return true;
        }

    }else{
        // return $sql;
        return false;
    }
}
/**
 *功能:查询操作
 *参数:数据库连接,数据表,查询字段,查询条件
 *返回值:是关联数组则返回true,否则返回false
*/
function dbSelect($link,$table,$fields='*',$where=null,$orderby=null,$limit=null){
    $table = DB_PREFIX . $table;
    if(is_array($fields)){
        $fields=join(',',$fields);
    }
    $sql = "select $fields from $table ";
    if($where){
        $where=where($where);
        $sql.=' where '.$where;
    }
    if($orderby){
        $sql.=' order by '.$orderby;
    }
    if($limit){
        $sql.=' limit '.$limit;
    }

    $res = mysqli_query($link,$sql);
    // var_dump($res);
    if($res && mysqli_num_rows($res)){
        return mysqli_fetch_all($res,MYSQLI_BOTH);
    }elseif($res!=false){
        return null;
    }
    // return $sql;
    return false;

}
/**
 *功能:数据库插入操作
 *参数:数据库连接,数据表,数据,条件
 *返回值:插入成功返回true,否则返回false(sql语句)
*/
//update table set a='b' where id=1;
function dbUpdate($link,$table,$data,$where){
    $table = DB_PREFIX . $table;
    $data=updateSet($data);
    if(is_null($where)){
        exit('您确定要全部更新吗?');
    }
    $where=where($where);
    $sql = "update $table set $data where $where";
    $res = mysqli_query($link,$sql);
    if($res && mysqli_affected_rows($link)){
        return true;
    }else{
        // return false;
        return $sql;
    }
}

/**
 *功能:删除数据库数据
 *参数:连接,数据表,条件
 *返回值:插入成功返回true,否则返回false(sql语句)
*/
//delete from table where id=3;
function dbDelete($link,$table,$where){
    $table = DB_PREFIX . $table;
    if(is_null($where)){
        exit('您确定要全部删除吗?');
    }
    $where = where($where);
    $sql = "delete from $table where $where";
    $res = mysqli_query($link,$sql);
    if($res && mysqli_affected_rows($link)){
        return true;
    }
    return $sql;
}
/**
 *功能:判断是否是关联数组
 *参数:数组
 *返回值:是关联数组则返回true,否则返回false
*/
function isAssocArray($arr)//判断是否是关联数组
{
    if(!is_array($arr)){
        return $arr;
    }
    foreach($arr as $key=>$value){
        if(is_string($key)){
            return true;
            // break;
        }
    }
    return false;
}
/**
 *功能:将数组的内容进行解析成进行插入操作需要的字符串
 *参数:数组
 *返回值:返回一个有两个成员的数组,第一个成员是插入操作的字段,第二个成员是值
*/
// //插入insert into table (name,pwd) values ('xi','123');
function insertContent($arr){//插入数据解析
    if(isAssocArray($arr)){
        $str[] = join(',',array_keys($arr));
        $str[] = "'".join("','",array_values($arr))."'";

    }else{
        foreach($arr as $val){
            $flag=explode('=',$val);
            $arr2[$flag[0]]=$flag[1];
            // var_dump($test);
        }
        $arr = $arr2;
        $str[] = join(',',array_keys($arr));
        $str[] = "'".join("','",array_values($arr))."'";
        // insertContent($arr2);
    }
    return $str;

}

/**
 *功能:条件解析,将多个条件拼接起来
 *参数:数组
 *返回值:返回一个拼接好的字符串,可直接放在where后面
*/
// //删除 delete from table where id=2;
function where($arr){//条件解析
    if(!is_array($arr)){
        return $arr;
    }elseif(isAssocArray($arr)){//如果是关联数组,将其转化为索引数组
        foreach($arr as $key=>$val){
            $where[] = $key.'='."'$val'";
        }
        $arr=$where;

    }
    $str = join(' and ',$arr);
    return $str;
}

/**
 *功能:对update操作所需数据进行解析
 *参数:数组
 *返回值:返回一个拼接好的字符串,可直接放在set后面,where条件用where函数
*/
//改 update table set name='abc',pwd='123' where id=2;
function updateSet($arr){//修改内容解析
    if(!is_array($arr)){
        return $arr;
    }elseif(isAssocArray($arr)){
        foreach($arr as $key=>$val){
            $set[] = $key.'='."'$val'";
        }
        $arr=$set;
    }
    $str = join(' , ',$arr);
    return $str;


}
/**
*功能:检测数组是否有空值
*参数:数组
*返回值:如果数组中存在空值,则返回true,否则返回false,如果传入的参数不是数组,也**返回true
*/
function checkEmpty($arr){
    if(empty($arr)){
        return true;
    }
    if(is_array($arr)){
        foreach($arr as $key=>$value){
            $value = trim($value);
            if($value==''){

                return true;
            }
        }
        return false;
    }else{
        return true;
    }
}
/**
 * [isEmail 判断是否是正确邮箱]
 * @param  [type]  $str [要判断的邮箱]
 * @return boolean      [是正确的邮箱返回true,不是返回false]
 */
function isEmail($str){
    $reg='/^[0-9a-z]+([.\-_]?[0-9a-z]+)*@[0-9a-z]+(.[0-9a-z]+)+$/i';
    $res=preg_match($reg, $str);
    if($res){
        return true;
    }else{
        return false;
    }
}

/**
 * [trimArr 去除数组元素值的两边空白字符]
 * @param  [type]  $arr [要操作的数组]
 * @return       [返回操作完成的数组]
 */
function trimArr($arr){
    if(!is_array($arr)){
        return trim($arr);
    }
    foreach($arr as $key=>$value){
        $value=trim($value);
        $arr[$key]=$value;
    }
    return $arr;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值