基于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 array的学习笔记
May 10 PHP
解析PHP多种序列化与反序列化的方法
Jun 06 PHP
浅析51个PHP处理字符串的函数
Aug 02 PHP
php页码形式分页函数支持静态化地址及ajax分页
Mar 28 PHP
CentOS 6.3下安装PHP xcache扩展模块笔记
Sep 10 PHP
php使用pdo连接报错Connection failed SQLSTATE的解决方法
Dec 15 PHP
php中session与cookie的比较
Jan 27 PHP
PHP的Socket通信之UDP通信实例
Jul 02 PHP
学习php设计模式 php实现装饰器模式(decorator)
Dec 07 PHP
Thinkphp3.2简单解决多文件上传只上传一张的问题
Sep 26 PHP
php unlink()函数使用教程
Jul 12 PHP
PHP PDOStatement::debugDumpParams讲解
Jan 30 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/10/09 PHP
php可扩展的验证类实例(可对邮件、手机号、URL等验证)
2015/07/09 PHP
php微信开发之自定义菜单实现
2016/11/18 PHP
PHP实现的装箱算法示例
2018/06/23 PHP
PHP sdk文档处理常用代码示例解析
2020/12/09 PHP
javascript各种复制代码收集
2008/09/20 Javascript
JavaScript 替换Html标签实现代码
2009/10/14 Javascript
善用事件代理,警惕闭包的性能陷阱。
2011/01/20 Javascript
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
利用js判断浏览器类型(是否为IE,Firefox,Opera浏览器)
2013/11/22 Javascript
swtich/if...else的替代语句
2015/08/16 Javascript
AngularJS监听路由的变化示例代码
2016/09/23 Javascript
js 实现省市区三级联动菜单效果
2017/02/20 Javascript
ajax实现加载页面、删除、查看详细信息 bootstrap美化页面!
2017/03/14 Javascript
微信小程序之判断页面滚动方向的示例代码
2018/08/30 Javascript
Js中使用正则表达式验证输入是否有特殊字符
2018/09/07 Javascript
从零使用TypeScript开发项目打包发布到npm
2020/02/14 Javascript
原生JavaScript写出Tabs标签页的实例代码
2020/07/20 Javascript
vue图片裁剪插件vue-cropper使用方法详解
2020/12/16 Vue.js
示例详解Python3 or Python2 两者之间的差异
2018/08/23 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
python组合无重复三位数的实例
2018/11/13 Python
Python判断对象是否相等及eq函数的讲解
2019/02/25 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
Python使用扩展库pywin32实现批量文档打印实例
2020/04/09 Python
HTML5实现文件断点续传的方法
2017/01/04 HTML / CSS
JACK & JONES英国官方网站:欧洲领先的男装生产商
2017/09/27 全球购物
葡萄牙航空官方网站:TAP Air Portugal
2019/10/31 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
电子专业求职信
2014/06/19 职场文书
大学生助学金感谢信
2015/01/21 职场文书
九华山导游词
2015/02/03 职场文书
2015年设计师个人工作总结
2015/04/25 职场文书
Python requests库参数提交的注意事项总结
2021/03/29 Python
关于Python使用turtle库画任意图的问题
2022/04/01 Python
零基础学java之带参数以及返回值的方法
2022/04/10 Java/Android