基于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 相关文章推荐
再次研究下cache_lite
Feb 14 PHP
改变Apache端口等配置修改方法
Jun 05 PHP
php代码书写习惯优化小结
Jun 20 PHP
让PHP显示Facebook的粉丝数量方法
Jan 08 PHP
PHP生成自适应大小的缩略图类及使用方法分享
May 06 PHP
PHP使用GETDATE获取当前日期时间作为一个关联数组的方法
Mar 19 PHP
CodeIgniter配置之config.php用法实例分析
Jan 19 PHP
Json_encode防止汉字转义成unicode的方法
Feb 25 PHP
ThinkPHP5框架实现简单的批量查询功能示例
Jun 07 PHP
PDO::inTransaction讲解
Jan 28 PHP
laravel 解决groupBy时出现的错误 isn't in Group By问题
Oct 17 PHP
PHP使用PDO实现mysql防注入功能详解
Dec 20 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
JS异常处理try..catch语句的作用和实例
2014/05/05 PHP
PHP CodeIgniter框架的工作原理研究
2015/03/30 PHP
浅谈php7的重大新特性
2015/10/23 PHP
PHP实现阿里大鱼短信验证的实例代码
2017/07/10 PHP
基于jquery的合并table相同单元格的插件(精简版)
2011/04/05 Javascript
js给dropdownlist添加选项的小例子
2013/03/04 Javascript
怎么选择Javascript框架(Javascript Framework)
2013/11/22 Javascript
优化javascript的执行效率一些方法总结
2013/12/25 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
JavaScript实现防止网页被嵌入Frame框架的代码分享
2014/12/29 Javascript
javascript实现画不相交的圆
2015/04/07 Javascript
基于jQuery实现收缩展开功能
2016/03/18 Javascript
jQuery获取父元素节点、子元素节点及兄弟元素节点的方法
2016/04/14 Javascript
javascript将json格式数组下载为excel表格的方法
2017/12/22 Javascript
vue cli构建的项目中请求代理与项目打包问题
2018/02/26 Javascript
layer实现弹出层自动调节位置
2019/09/05 Javascript
Python中的groupby分组功能的实例代码
2018/07/11 Python
使用python3实现操作串口详解
2019/01/01 Python
Python学习笔记之Django创建第一个数据库模型的方法
2019/08/07 Python
python 字典有序并写入json文件过程解析
2019/09/30 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
Python 格式化输出_String Formatting_控制小数点位数的实例详解
2020/02/04 Python
科技开发中心办公室主任岗位责任制
2014/02/10 职场文书
老同学聚会感言
2014/02/23 职场文书
人民调解员先进事迹材料
2014/05/08 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
代收款委托书范本
2014/10/01 职场文书
小学校园广播稿集锦
2014/10/04 职场文书
保安2014年终工作总结
2014/12/06 职场文书
社区好人好事材料
2014/12/26 职场文书
超市收银员岗位职责
2015/04/07 职场文书
建筑技术负责人岗位职责
2015/04/13 职场文书
项目合作意向书
2015/05/08 职场文书
分析Python感知线程状态的解决方案之Event与信号量
2021/06/16 Python
python利用while求100内的整数和方式
2021/11/07 Python
vue cli4中mockjs在dev环境和build环境的配置详情
2022/04/06 Vue.js