Blogger Information
Blog 16
fans 0
comment 2
visits 13453
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
数据库操作函数库--2018年4月26日22点51分
Alan_繁华
Original
704 people have browsed it

利用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;
            }
        }

    }
}

运行实例 »

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


Correction status:Uncorrected

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments