博客列表 >数据库操作函数库--2018年4月26日22点51分

数据库操作函数库--2018年4月26日22点51分

Alan_繁华
Alan_繁华原创
2018年04月26日 22:52:52706浏览

利用PDO执行数据的增删查改功能,实现函数库操作

实例

<?php
/医院
 * PDO数据库操作函数库
 */

//1.连接数据库
if(!function_exists('connect')) {
    /医院
     * 数据库连接
     * @param $dbname           数据库名
     * @param string $type      数据库类型
     * @param string $host      连接主机
     * @param string $charset   字符集
     * @param string $port      连接端口
     * @param $username         数据库用户名
     * @param $passwd           数据库密码
     * @return PDO
     */
    function connect($dbname, $type = 'mysql', $host = '127.0.0.1', $charset = 'utf8', $port = '3306', $username, $passwd)
    {
        $dsn = $type . ":host=" . $host . ";dbname=" . $dbname . ";charset=" . $charset . ";port=" . $port;
        try {
            $pdo = new PDO($dsn, $username, $passwd);
        } catch (PDOException $e) {
            //连接失败,返回错误信息
            print "CONNECT ERROR:" . $e->getMessage();
            die();
        }
        return $pdo;
    }
}

//2.新增数据
if(!function_exists("insert")){

    /医院
     * 新增操作
     * @param $pdo
     * @param $table
     * @param array $data   要插入的数据
     */
    function insert($pdo,$table,$data=[]){

        $sql = "INSERT IGNORE {$table} SET ";
        //拼接sql语句
        foreach (array_keys($data) as $field) {
            $sql .= $field.'=:'.$field.', ';
        }
        //去除右侧逗号,并加上分号
        $sql = rtrim(trim($sql),",").";";
        $stmt = $pdo->prepare($sql);

        //绑定参数到预处理参数
        foreach ($data as $field => $value) {
            $stmt->bindValue(":{$field}",$value);
        }

        //执行新增操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }
        } else {
            return false;
        }

    }
}

//2.更新数据
if(!function_exists("update")){
    /医院
     * @param $pdo
     * @param $table
     * @param array $data   要更新的数据
     * @param string $where 要插入的条件
     * @return bool
     */
    function update($pdo,$table,$data=[],$where = ''){

        $sql = "UPDATE {$table} SET ";
        //拼接sql语句
        foreach (array_keys($data) as $field){
            $sql .= $field."=:".$field.",";
        }
        //去除右侧逗号
        $sql = rtrim(trim($sql),",");
        //添加更新条件
        if(!empty($where)){
            $sql .= " WHERE ".$where.";";
        }else{
            exit("条件不能为空!");
        }

//        die($sql);
        $stmt = $pdo->prepare($sql);

        //绑定参数到预处理参数
        foreach ($data as $field=>$value){
            $stmt->bindValue(":{$field}",$value);
        }
        //执行更新操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }else{
                return false;
            }
        }

    }
}

//3.查询单条记录
if(!function_exists("find")){
    /医院
     * @param $pdo
     * @param $table
     * @param $fields       要查询的字段,可数组或字符串
     * @param string $where 查询条件
     * @return array        返回二维数组
     */
    function find($pdo,$table,$fields,$where = ''){
        $sql = "SELECT ";
        if(is_array($fields)){
            foreach ($fields as $field){
                $sql .= $field.",";
            }
        }else{
            $sql .= $fields .",";
        }
        $sql = rtrim(trim($sql),",")." FROM ".$table;
        if(!empty($where)){
            $sql .= " WHERE " .$where. " LIMIT 1 ;";
        }
        $stmt = $pdo->prepare($sql);
        //执行查询操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return $stmt->fetch(PDO::FETCH_ASSOC);
            }else{
                return false;
            }
        }else{
            return false;
        }

    }
}


//3.查询多条记录
if(!function_exists("select")){
    /医院
     * 查询多条记录
     * @param $pdo
     * @param $table
     * @param $fields       要查询的字段名,可字符串或数组
     * @param string $where 查询条件
     * @param string $order 排序
     * @param string $limit 查询条数
     * @return array        返回值:二维数组
     */
    function select($pdo,$table,$fields,$where = '',$order = " ",$limit = " "){
        $sql = "SELECT ";
        if(is_array($fields)){
            foreach ($fields as $field){
                $sql .= $field.",";
            }
        }else{
            $sql .= $fields .",";
        }
        $sql = rtrim(trim($sql),",")." FROM ".$table;
        if(!empty($where)){
            $sql .= " WHERE " .$where;
        }else{
            exit("条件不能为空");
        }
        if(!empty($order)){
            $sql .= " ORDER BY ".$order;
        }
        if(!empty($limit)){
            $sql .= " LIMIT ".$limit .";";
        }
        $stmt = $pdo->prepare($sql);

        //执行查询操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return $stmt->fetchAll(PDO::FETCH_ASSOC);
            }else{
                return false;
            }
        }else{
            return false;
        }

    }
}

//2.删除数据
if(!function_exists("delete")){
    /医院
     * 删除数据
     * @param $pdo
     * @param $table        要删除数据的表名
     * @param string $where 删除条件
     * @return bool         返回值
     */
    function delete($pdo,$table,$where = ''){
        $sql = "DELETE FROM {$table} ";
        //删除更新条件
        if(!empty($where)){
            $sql .= " WHERE ".$where.";";
        }else{
            exit("条件不能为空!");
        }
        $stmt = $pdo->prepare($sql);
        //执行删除操作
        if($stmt->execute()){
            if($stmt->rowCount()>0){
                return true;
            }else{
                return false;
            }
        }

    }
}

运行实例 »

点击 "运行实例" 按钮查看在线实例


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议