基于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与MySQL开发中页面出现乱码的一种解决方法
Jul 29 PHP
php的正则处理函数总结分析
Jun 20 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
Apr 28 PHP
php实现自动获取生成文章主题关键词功能的深入分析
Jun 03 PHP
thinkphp 一个页面使用2次分页的实现方法
Jul 15 PHP
PHP利用str_replace防注入的方法
Nov 10 PHP
php GUID生成函数和类
Mar 10 PHP
php按百分比生成缩略图的代码分享
May 10 PHP
php结合正则批量抓取网页中邮箱地址
May 19 PHP
Linux下编译redis和phpredis的方法
Apr 07 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
Feb 03 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 学习路线与时间表
2010/02/21 PHP
PHP clearstatcache()函数详解
2010/03/02 PHP
PHP dirname功能及原理实例解析
2020/10/28 PHP
用js实现计算代码行数的简单方法附代码
2007/08/13 Javascript
高效的表格行背景隔行变色及选定高亮的JS代码
2010/12/04 Javascript
js替换字符串的所有示例代码
2013/07/23 Javascript
js实现有时间限制消失的图片方法
2015/02/27 Javascript
JavaScript简单判断复选框是否选中及取出值的方法
2015/08/13 Javascript
js与jQuery实现checkbox复选框全选/全不选的方法
2016/01/05 Javascript
讲解JavaScript的Backbone.js框架的MVC结构设计理念
2016/02/14 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
基于JS实现横线提示输入验证码随验证码输入消失(js验证码的实现)
2016/10/27 Javascript
JS实现的验证身份证及获取地区功能示例
2017/01/16 Javascript
JavaScript定时器制作弹窗小广告
2017/02/05 Javascript
Angular排序实例详解
2017/06/28 Javascript
JS全角与半角转化实例(分享)
2017/07/04 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
JSON生成Form表单的方法示例
2018/11/21 Javascript
vue的列表交错过渡实现代码示例
2019/05/05 Javascript
微信小程序实现侧边分类栏
2019/10/21 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
解决vue自定义指令导致的内存泄漏问题
2020/08/04 Javascript
[02:37]TI8勇士令状不朽珍藏II视频展示
2018/06/23 DOTA
Python用UUID库生成唯一ID的方法示例
2016/12/15 Python
python处理大日志文件
2019/07/23 Python
python标准库OS模块函数列表与实例全解
2020/03/10 Python
利用python生成照片墙的示例代码
2020/04/09 Python
Python 里最强的地图绘制神器
2021/03/01 Python
html table呈现个人简历以及单元格宽度失效的问题解决
2021/01/22 HTML / CSS
什么是servlet链?
2014/07/13 面试题
农田水利实习自我鉴定
2013/09/19 职场文书
设计总监岗位职责
2013/12/07 职场文书
重大事项社会稳定风险评估方案
2014/06/15 职场文书
cf战队收人口号
2014/06/21 职场文书
自主招生英文自荐信
2015/03/25 职场文书
2016秋季幼儿园开学寄语
2015/12/03 职场文书