基于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 相关文章推荐
PHPMailer 中文使用说明小结
Jan 22 PHP
PHP IN_ARRAY 函数使用注意事项
Jul 24 PHP
10条PHP高级技巧[修正版]
Aug 02 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
php汉字转拼音的示例
Feb 27 PHP
php函数与传递参数实例分析
Nov 15 PHP
php实现的简单美国商品税计算函数
Jul 13 PHP
WIFI万能钥匙密码查询接口实例
Sep 28 PHP
ThinkPHP使用Ueditor的方法详解
May 20 PHP
[原创]smarty简单模板变量输出方法
Jul 09 PHP
Yii2增删改查之查询 where参数详细介绍
Aug 08 PHP
PHP设计模式之命令模式示例详解
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
15种PHP Encoder的比较
2007/03/06 PHP
phpExcel中文帮助手册之常用功能指南
2014/08/18 PHP
PHP中strtr字符串替换用法详解
2014/11/26 PHP
php无序树实现方法
2015/07/28 PHP
php面向对象之反射功能与用法分析
2017/03/29 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
2020/04/04 PHP
js jquery做的图片连续滚动代码
2008/01/06 Javascript
Javascript判断图片尺寸大小实例分析
2014/06/16 Javascript
将数字转换成大写的人民币表达式的js函数
2014/09/21 Javascript
JavaScript定义变量和变量优先级问题探讨
2014/10/11 Javascript
node.js中的fs.ftruncate方法使用说明
2014/12/15 Javascript
谈谈JavaScript中function多重理解
2015/08/28 Javascript
轮播的简单实现方法
2016/07/28 Javascript
jQuery多个版本和其他js库冲突的解决方法
2016/08/11 Javascript
浅谈JavaScript 数据属性和访问器属性
2016/09/01 Javascript
jquery checkbox的相关操作总结
2016/10/17 Javascript
js判断节假日实例代码
2017/12/27 Javascript
javascript使用正则实现去掉字符串前面的所有0
2018/07/23 Javascript
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
Vue 数据绑定的原理分析
2020/11/16 Javascript
python基于右递归解决八皇后问题的方法
2015/05/25 Python
Go语言基于Socket编写服务器端与客户端通信的实例
2016/02/19 Python
Python 实现输入任意多个数,并计算其平均值的例子
2019/07/16 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
django+tornado实现实时查看远程日志的方法
2019/08/12 Python
为什么说Python可以实现所有的算法
2019/10/04 Python
Python基于Socket实现简单聊天室
2020/02/17 Python
Flask中sqlalchemy模块的实例用法
2020/08/02 Python
CSS3实现3D翻书效果
2016/06/20 HTML / CSS
Canvas实现放大镜效果完整案例分析(附代码)
2020/11/26 HTML / CSS
师范学院美术系毕业生自我鉴定
2014/01/29 职场文书
篮球比赛策划方案
2014/06/05 职场文书
2014年度考核工作总结
2014/12/24 职场文书
2015年办公室主任工作总结
2015/04/09 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
2016年推广普通话宣传周活动总结
2016/04/06 职场文书