基于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数据缓存技术
Feb 14 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
《PHP编程最快明白》第八讲:php启发和小结
Nov 01 PHP
php使用百度ping服务代码实例
Jun 19 PHP
destoon会员注册提示“数据校验失败(2)”解决方法
Jun 21 PHP
PHP把JPEG图片转换成Progressive JPEG的方法
Jun 30 PHP
PHP实现AES256加密算法实例
Sep 22 PHP
PHP实现将HTML5中Canvas图像保存到服务器的方法
Nov 28 PHP
PHP SPL标准库之接口(Interface)详解
May 11 PHP
PHP实现的防止跨站和xss攻击代码【来自阿里云】
Jan 29 PHP
PHP基于PDO扩展操作mysql数据库示例
Dec 24 PHP
PHP RabbitMQ消息列队
May 11 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 地区分类排序算法
2013/07/01 PHP
php通过文件头判断格式的方法
2016/05/28 PHP
php闭包中使用use声明变量的作用域实例分析
2018/08/09 PHP
jQuery选中select控件 无法设置selected的解决方法
2010/09/01 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
js控制的回到页面顶端goTop的代码实现
2013/03/20 Javascript
JavaScript中的单引号和双引号报错的解决方法
2014/09/01 Javascript
JavaScript中九种常用排序算法
2014/09/02 Javascript
使用jQuery在对象中缓存选择器的简单方法
2015/06/30 Javascript
jQuery Validate验证框架经典大全
2015/09/23 Javascript
JavaScript中Function函数与Object对象的关系
2015/12/17 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
解决JavaScript中0.1+0.2不等于0.3问题
2018/10/23 Javascript
[02:23]1个至宝=115个英雄特效 最“绿”至宝拉比克“魔导师密钥”登场
2018/12/29 DOTA
[03:41]2018完美盛典-《Fight With Us》
2018/12/16 DOTA
[40:53]完美世界DOTA2联赛PWL S3 Magma vs DLG 第二场 12.18
2020/12/20 DOTA
通过数据库对Django进行删除字段和删除模型的操作
2015/07/21 Python
利用python解决mysql视图导入导出依赖的问题
2017/12/17 Python
基于Python实现的微信好友数据分析
2018/02/26 Python
Python实现模拟登录网易邮箱的方法示例
2018/07/05 Python
Pycharm设置去除显示的波浪线方法
2018/10/28 Python
Python Tornado实现WEB服务器Socket服务器共存并实现交互的方法
2020/05/26 Python
Python使用requests模块爬取百度翻译
2020/08/25 Python
python调用摄像头的示例代码
2020/09/28 Python
利用纯css3实现的文字亮光特效的代码演示
2014/11/27 HTML / CSS
阿根廷网上配眼镜:SmartBuyGlasses阿根廷
2016/08/19 全球购物
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
应用服务器有那些
2012/01/19 面试题
美化环境标语
2014/06/20 职场文书
运动会稿件100字
2014/09/24 职场文书
土地转让协议书
2014/09/27 职场文书
培训通知书模板
2015/04/17 职场文书
2016年教代会开幕词
2016/03/04 职场文书
浅谈Web Storage API的使用
2021/06/23 Javascript
elasticSearch-api的具体操作步骤讲解
2021/06/28 Java/Android
instantclient客户端 连接oracle数据库
2022/04/26 Oracle