基于php和mysql的简单的dao类实现crud操作功能


Posted in PHP onJanuary 27, 2014
<?php
    //require_once('FirePHPCore/FirePHP.class.php');
    //$firephp = FirePHP::getInstance(true); // debugger in firefox
    class SimpleDao {
        private $_table = null;
        private static $_con = null;
        public function SimpleDao() {
            if ($this->_con == null) {
                $this->_con = @mysql_connect("localhost", "root", "123456");
                if ($this->_con == FALSE) {
                    echo("connect to db server failed.");
                    $this->_con = null;
                    return;
                }
                //$firephp->log("new DAO object");
                @mysql_select_db("swan", $this->_con);
            }
        }
        public function table($tablename) {
            $this->_table = $tablename;
            return $this;
        }
        public function query($sql) {
            $result = @mysql_query($sql);
            $ret = [];
            if ($result) {
                while ($row = mysql_fetch_array($result)) {
                    $ret[] = $row;
                }
            }
            return $ret;
        }
        public function get($where = null) {
            $sql = "select * from ".$this->_table;
            $sql = $sql.$this->_getWhereString($where);
            //echo "[get]".$sql."<br>";
            return $this->query($sql);
        }
        public function insert($params) {
            if ($params == null || !is_array($params)) {
                return -1;
            }
            $keys = $this->_getParamKeyString($params);
            $vals = $this->_getParamValString($params);
            $sql = "insert into ".$this->_table."(".$keys.") values(".$vals.")";
            //echo "[insert]".$sql."<br>";
            $result = @mysql_query($sql);
            if (! $result) {
                return -1;
            }
            return @mysql_insert_id();
        }
        public function update($params, $where = null) {
            if ($params == null || !is_array($params)) {
                return -1;
            }
            $upvals = $this->_getUpdateString($params);
            $wheres = $this->_getWhereString($where);
            $sql = "update ".$this->_table." set ".$upvals." ".$wheres;
            //echo "[update]".$sql."<br>";
            $result = @mysql_query($sql);
            if (! $result) {
                return -1;
            }
            return @mysql_affected_rows();
        }
        public function delete($where) {
            $wheres = $this->_getWhereString($where);
            $sql = "delete from ".$this->_table.$wheres;
            //echo "[delete]".$sql."<br>";
            $result = @mysql_query($sql);
            if (! $result) {
                return -1;
            }
            return @mysql_affected_rows();
        }
        protected function _getParamKeyString($params) {
            $keys = array_keys($params);
            return implode(",", $keys);
        }
        protected function _getParamValString($params) {
            $vals = array_values($params);
            return "'".implode("','", $vals)."'";
        }
        private function _getUpdateString($params) {
            //echo "_getUpdateString";
            $sql = "";
            if (is_array($params)) {
                $sql = $this->_getKeyValString($params, ",");
            }
            return $sql;
        }
        private function _getWhereString($params) {
            //echo "_getWhereString";
            $sql = "";
            if (is_array($params)) {
                $sql = " where ";
                $where = $this->_getKeyValString($params, " and ");
                $sql = $sql.$where;
            }
            return $sql;
        }
        private function _getKeyValString($params, $split) {
            $str = "";
            if (is_array($params)) {
                $paramArr = array();
                foreach($params as $key=>$val) {
                    $valstr = $val;
                    if (is_string($val)) {
                        $valstr = "'".$val."'";
                    }
                    $paramArr[] = $key."=".$valstr;
                }
                $str = $str.implode($split, $paramArr);
            }
            return $str;
        }
        public function release() {
            @mysql_close();
        }
    }
    function T($table) {
        return (new SimpleDao())->table($table);
    }
?>
PHP 相关文章推荐
控制PHP的输出:缓存并压缩动态页面
Jun 11 PHP
php ci框架验证码实例分析
Jun 26 PHP
PHP和javascript常用正则表达式及用法实例
Jul 01 PHP
php通过排列组合实现1到9数字相加都等于20的方法
Aug 03 PHP
thinkPHP连接sqlite3数据库的实现方法(附Thinkphp代码生成器下载)
May 27 PHP
php将文件夹打包成zip文件的简单实现方法
Oct 04 PHP
php插件Xajax使用方法详解
Aug 31 PHP
php两点地理坐标距离的计算方法
Dec 29 PHP
php数组和链表的区别总结
Sep 20 PHP
Laravel 集成微信用户登录和绑定的实现
Dec 27 PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 PHP
PHP开发API接口签名生成及验证操作示例
May 27 PHP
使用php测试硬盘写入速度示例
Jan 27 #PHP
网页上facebook分享功能具体实现
Jan 26 #PHP
php获取当前时间的毫秒数的方法
Jan 26 #PHP
PHP 利用Mail_MimeDecode类提取邮件信息示例
Jan 26 #PHP
php读取纯真ip数据库使用示例
Jan 26 #PHP
curl不使用文件存取cookie php使用curl获取cookie示例
Jan 26 #PHP
php版小黄鸡simsimi聊天机器人接口分享
Jan 26 #PHP
You might like
批量去除PHP文件中bom的PHP代码
2012/03/13 PHP
如何让CI框架支持service层
2014/10/29 PHP
php实现在服务器端调整图片大小的方法
2015/06/16 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
php遍历解析xml字符串的方法
2016/05/05 PHP
发一个自己用JS写的实用看图工具实现代码
2008/07/26 Javascript
JS验证身份证有效性示例
2013/10/11 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
javascript中with()方法的语法格式及使用
2014/08/04 Javascript
javascript实现列表切换效果
2016/05/02 Javascript
jQuery+Pdo编写login登陆界面
2016/08/01 Javascript
json定义及jquery操作json的方法
2016/10/03 Javascript
JS日期对象简单操作(获取当前年份、星期、时间)
2016/10/26 Javascript
Vue2.0使用过程常见的一些问题总结学习
2017/04/10 Javascript
Vue.js 2.0学习教程之从基础到组件详解
2017/04/24 Javascript
vue 点击按钮增加一行的方法
2018/09/07 Javascript
layui清除radio的选中状态实例
2019/11/14 Javascript
Vue Router 实现动态路由和常见问题及解决方法
2020/03/06 Javascript
JS数组Reduce方法功能与用法实例详解
2020/04/29 Javascript
Ant design vue table 单击行选中 勾选checkbox教程
2020/10/24 Javascript
nuxt 路由、过渡特效、中间件的实现代码
2020/11/06 Javascript
[06:44]2014DOTA2国际邀请赛-钥匙体育馆开战 开幕式振奋人心
2014/07/19 DOTA
Python读写文件方法总结
2015/06/09 Python
在Python中使用defaultdict初始化字典以及应用方法
2018/10/31 Python
Python+PyQT5的子线程更新UI界面的实例
2019/06/14 Python
windows下python安装pip方法详解
2020/02/10 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
Python tcp传输代码实例解析
2020/03/18 Python
Python读取excel文件中带公式的值的实现
2020/04/17 Python
判断Threading.start新线程是否执行完毕的实例
2020/05/02 Python
python中_del_还原数据的方法
2020/12/09 Python
英文求职信写作小建议
2014/02/16 职场文书
酒店财务部岗位职责
2015/04/14 职场文书
小区环境卫生倡议书
2015/04/29 职场文书
Python机器学习之决策树和随机森林
2021/07/15 Javascript
python装饰器代码解析
2022/03/23 Python