登录  /  注册
博主信息
博文 16
粉丝 0
评论 2
访问量 13011
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
数据库操作函数库--2018年4月26日22点51分
Alan_繁华
原创
677人浏览过

利用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举报处理!
全部评论 文明上网理性发言,请遵守新闻评论服务协议
0条评论
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号

  • 登录PHP中文网,和优秀的人一起学习!
    全站2000+教程免费学