基于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 什么是PEAR?
Mar 19 PHP
PHP字符串函数系列之nl2br(),在字符串中的每个新行 (\n) 之前插入 HTML 换行符br
Nov 10 PHP
解析PHP将对象转换成数组的方法(兼容多维数组类型)
Jun 21 PHP
php防注入及开发安全详细解析
Aug 09 PHP
PHP判断指定时间段的2个方法
Mar 14 PHP
ThinkPHP调用common/common.php函数提示错误function undefined的解决方法
Aug 25 PHP
php网页病毒清除类
Dec 08 PHP
WordPress中用于获取文章信息以及分类链接的函数用法
Dec 18 PHP
php session 写入数据库
Feb 13 PHP
thinkPHP线上自动加载异常与修复方法实例分析
Dec 01 PHP
PHP删除字符串中非字母数字字符方法总结
Jan 20 PHP
PHP的mysqli_select_db()函数讲解
Jan 23 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
广播爱好者需要了解的天线知识
2021/03/01 无线电
PHP和MySql中32位和64位的整形范围是多少
2016/02/18 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
PHP解决中文乱码
2017/04/28 PHP
在Laravel中使用GuzzleHttp调用第三方服务的API接口代码
2019/10/15 PHP
关于javascript DOM事件模型的两件事
2010/07/22 Javascript
js getBoundingClientRect() 来获取页面元素的位置
2010/11/25 Javascript
Javascript合并表格中具有相同内容单元格示例
2013/08/11 Javascript
无刷新预览所选择的图片示例代码
2014/04/02 Javascript
浅谈JavaScript超时调用和间歇调用
2015/08/30 Javascript
javascript针对不确定函数的执行方法
2015/12/16 Javascript
JS实现超简单的汉字转拼音功能示例
2016/12/22 Javascript
Javascript继承机制详解
2017/05/30 Javascript
使用js获取伪元素的content实例
2017/10/24 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
JavaScript实现随机点名器实例详解
2019/05/07 Javascript
如何写好一个vue组件,老夫的一年经验全在这了(推荐)
2019/05/18 Javascript
JS异步处理的进化史深入讲解
2019/08/25 Javascript
微信小程序学习总结(一)项目创建与目录结构分析
2020/06/04 Javascript
[42:22]DOTA2上海特级锦标赛C组小组赛#1 OG VS Archon第一局
2016/02/27 DOTA
Python交换变量
2008/09/06 Python
python迭代器实例简析
2014/09/25 Python
Python lambda和Python def区别分析
2014/11/30 Python
用Python操作字符串之rindex()方法的使用
2015/05/19 Python
python使用pymysql实现操作mysql
2016/09/13 Python
详谈套接字中SO_REUSEPORT和SO_REUSEADDR的区别
2018/04/28 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
Python实现迪杰斯特拉算法过程解析
2020/09/18 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
高三自我鉴定范文
2013/10/19 职场文书
研究生毕业鉴定
2014/01/29 职场文书
2015年幼儿园毕业感言
2014/02/12 职场文书
计算机应用专业自荐信
2014/07/05 职场文书
学校教学管理制度
2015/08/06 职场文书
Python实现信息管理系统
2022/06/05 Python