基于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文本数据库的搜索方法
Oct 09 PHP
PHP 删除一个目录及目录下的所有文件的函数代码
May 26 PHP
PHP高级对象构建 多个构造函数的使用
Feb 05 PHP
PHPMailer使用教程(PHPMailer发送邮件实例分析)
Dec 06 PHP
PHP中使用socket方式GET、POST数据实例
Apr 02 PHP
Codeigniter控制器controller继承问题实例分析
Jan 19 PHP
[原创]php简单隔行变色功能实现代码
Jul 09 PHP
Laravel最佳分割路由文件(routes.php)的方式
Aug 04 PHP
PHP实现浏览器格式化显示XML的方法示例
Jan 22 PHP
PHP利用百度ai实现文本和图片审核
May 08 PHP
PHP使用CURL实现下载文件功能示例
Jun 03 PHP
解决laravel groupBy 对查询结果进行分组出现的问题
Oct 09 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用SAX解析XML的实现代码与问题分析
2011/08/22 PHP
了解PHP的返回引用和局部静态变量
2015/06/04 PHP
php通过header发送自定义数据方法
2018/01/18 PHP
PHP levenshtein()函数用法讲解
2019/03/08 PHP
THREE.JS入门教程(3)着色器-下
2013/01/24 Javascript
jQuery实现返回顶部功能适合不支持js的浏览器
2014/08/19 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
js剪切板应用clipboardData实例解析
2016/05/29 Javascript
一览画面点击复选框后获取多个id值的方法
2016/05/30 Javascript
简单理解vue中实例属性vm.$els
2016/12/01 Javascript
详解vue 模版组件的三种用法
2017/07/21 Javascript
JS代码实现电脑配置检测功能
2018/03/21 Javascript
VUE DOM加载后执行自定义事件的方法
2018/09/07 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
JS如何生成动态列表
2020/09/22 Javascript
[16:27]DOTA2 HEROS教学视频教你分分钟做大人-艾欧
2014/06/11 DOTA
python抓取网页中的图片示例
2014/02/28 Python
Python中的深拷贝和浅拷贝详解
2015/06/03 Python
Python的Django框架中模板碎片缓存简介
2015/07/24 Python
python下调用pytesseract识别某网站验证码的实现方法
2016/06/06 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
django输出html内容的实例
2018/05/27 Python
详解pyinstaller selenium python3 chrome打包问题
2019/10/18 Python
解决pycharm启动后总是不停的updating indices...indexing的问题
2019/11/27 Python
PyTorch的自适应池化Adaptive Pooling实例
2020/01/03 Python
python读取mysql数据绘制条形图
2020/03/25 Python
你可能不熟练的十个前端HTML5经典面试题
2018/07/03 HTML / CSS
极简的HTML5模版
2015/07/09 HTML / CSS
Etam德国:内衣精品店
2019/08/25 全球购物
linux面试题参考答案(11)
2012/05/01 面试题
计算机专业应届毕业生自荐信
2013/09/26 职场文书
父亲追悼会答谢词
2014/01/17 职场文书
入党群众意见范文
2015/06/02 职场文书
2016年母亲节寄语
2015/12/04 职场文书
少先队大队委竞选口号
2015/12/25 职场文书