前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >一个基于PDO的数据库操作类

一个基于PDO的数据库操作类

作者头像
胡尐睿丶
发布2022-03-23 14:11:33
4020
发布2022-03-23 14:11:33
举报
文章被收录于专栏:代码小睿

文章已更新,查看地址:http://www.cnblogs.com/hooray/archive/2011/06/30/2094743.html

工作一年以来,所做的项目使用的都是ADODB,但其的代码臃肿和执行效率低导致现在需要更换。

百度之后决定使用PDO,至于为什么选择PDO,这里就不再多说,大家自己去百度下就能明白。

既然要换,那最基本就需要有个常用的数据库操作类,也就是所谓的增删改查等,昨晚捣腾了一晚,大致弄出了个雏形,以下就是代码,希望大家能给出点意见。

代码语言:javascript
复制
View Code 
<?php
/*
    作者:胡睿
    日期:2011/03/19
    电邮:hooray0905@foxmail.com
    
    20110319
    常用数据库操作,如:增删改查,获取单条记录、多条记录,返回最新一条插入记录id,返回操作记录行数等
*/
    /*
        参数说明
        int            $debug        是否开启调试,开启则输出sql语句
        int            $getcount    是否记数,返回值为行数
        int            $getrow        是否返回值单条记录
        string        $table        数据库表
        string        $fields        需要查询的数据库字段,允许为空,默认为查找全部
        string        $sqlwhere    查询条件,允许为空
        string        $orderby    排序,允许为空,默认为id倒序
    */
    function hrSelect($debug,$getcount,$getrow,$table,$fields="*",$sqlwhere="",$orderby="id desc"){
        global$pdo;
        if($debug){
            if($getcount){
                echo"select count(*) from $table where 1=1 $sqlwhere order by $orderby";
            }else{
                echo"select $fields from $table where 1=1 $sqlwhere order by $orderby";
            }
            exit;
        }else{
            if($getcount){
                $rs=$pdo->query("select count(*) from $table where 1=1 $sqlwhere order by $orderby");
                return$rs->fetchColumn();
            }elseif($getrow){
                $rs=$pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
                return$rs->fetch();
            }else{
                $rs=$pdo->query("select $fields from $table where 1=1 $sqlwhere order by $orderby");
                return$rs->fetchAll();
            }
        }
    }
    
    /*
        参数说明
        int            $debug            是否开启调试,开启则输出sql语句
        int            $execrow        是否开启返回执行条目数
        int            $lastinsertid    是否开启返回最后一条插入记录id
        string        $table            数据库表
        string        $fields            需要插入数据库的字段
        string        $values            需要插入数据库的信息,必须与$fields一一对应
    */
    function hrInsert($debug,$execrow,$lastinsertid,$table,$fields,$values){
        global$pdo;
        if($debug){
            echo"insert into $table ($fields) values ($values)";
            exit;
        }elseif($execrow){
            return$pdo->exec("insert into $table ($fields) values ($values)");
        }elseif($lastinsertid){
            return$pdo->lastInsertId("insert into $table ($fields) values ($values)");
        }else{
            $pdo->query("insert into $table ($fields) values ($values)");
        }
    }
    
    /*
        参数说明
        int            $debug        是否开启调试,开启则输出sql语句
        int            $execrow    是否开启执行并返回条目数
        string        $table        数据库表
        string        $set        需要更新的字段及内容,格式:a='abc',b=2,c='2010-10-10 10:10:10'
        string        $sqlwhere    修改条件,允许为空
    */
    function hrUpdate($debug,$execrow,$table,$set,$sqlwhere=""){
        global$pdo;
        if($debug){
            echo"update $table set $set where 1=1 $sqlwhere";
            exit;
        }elseif($execrow){
            return$pdo->exec("update $table set $set where 1=1 $sqlwhere");
        }else{
            $pdo->query("update $table set $set where 1=1 $sqlwhere");
        }
    }
    
    /*
        参数说明
        int            $debug        是否开启调试,开启则输出sql语句
        int            $execrow    是否开启返回执行条目数
        string        $table        数据库表
        string        $sqlwhere    删除条件,允许为空
    */
    function hrDelete($debug,$execrow,$table,$sqlwhere=""){
        global$pdo;
        if($debug){
            echo"delete from $table where 1=1 $sqlwhere";
            exit;
        }elseif($execrow){
            return$pdo->exec("delete from $table where 1=1 $sqlwhere");
        }else{
            $pdo->query("delete from $table where 1=1 $sqlwhere");
        }
    }
?>

参数的注释都写的很清楚,如果有人需要,不清楚使用方法可以直接问我。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2011-03-19 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档