基于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.MVC的模板标签系统(三)
Sep 05 PHP
投票管理程序
Oct 09 PHP
UCenter Home二次开发指南
May 28 PHP
PHP 读取和修改大文件的某行内容的代码
Oct 30 PHP
windows下升级PHP到5.3.3的过程及注意事项
Oct 12 PHP
php做下载文件的实现代码及文件名中乱码解决方法
Feb 03 PHP
php输出指定时间以前时间格式的方法
Mar 21 PHP
php解析mht文件转换成html的实例
Mar 13 PHP
php支付宝APP支付功能
Jul 29 PHP
php使用curl模拟浏览器表单上传文件或者图片的方法
Nov 10 PHP
利用PHP内置SERVER开启web服务(本地开发使用)
Jan 22 PHP
Yii redis集合的基本使用教程
Jun 14 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
一拳超人中怪人协会钦定! S级别最强四人!
2020/03/02 日漫
当海贼王变成JOJO风
2020/03/02 日漫
模仿OSO的论坛(四)
2006/10/09 PHP
php上的memcache和memcached两个pecl库
2010/03/29 PHP
一个典型的PHP分页实例代码分享
2011/07/28 PHP
php实现过滤表单提交中html标签的方法
2014/10/17 PHP
PHP实现的Redis多库选择功能单例类
2017/07/27 PHP
PHP实现在对象之外访问其私有属性private及保护属性protected的方法
2017/11/20 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
PHP序列化和反序列化深度剖析实例讲解
2020/12/29 PHP
js 如何实现对数据库的增删改查
2012/11/23 Javascript
JavaScript设计模式之代理模式介绍
2014/12/28 Javascript
jQuery插件Zclip实现完美兼容个浏览器点击复制内容到剪贴板
2015/04/30 Javascript
浅谈原生JS中的延迟脚本和异步脚本
2017/07/12 Javascript
IntelliJ IDEA 安装vue开发插件的方法
2017/11/21 Javascript
mpvue中配置vuex并持久化到本地Storage图文教程解析
2018/03/15 Javascript
Angular 数据请求的实现方法
2018/05/07 Javascript
浅谈Vue路由快照实现思路及其问题
2018/06/07 Javascript
vue中设置height:100%无效的问题及解决方法
2018/07/27 Javascript
Element UI 自定义正则表达式验证方法
2018/09/04 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
vuex存储复杂参数(如对象数组等)刷新数据丢失的解决方法
2019/11/05 Javascript
在Django框架中设置语言偏好的教程
2015/07/27 Python
python基本语法练习实例
2017/09/19 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
分享一下Python数据分析常用的8款工具
2018/04/29 Python
使用Anaconda3建立虚拟独立的python2.7环境方法
2018/06/11 Python
python实现linux下抓包并存库功能
2018/07/18 Python
python opencv minAreaRect 生成最小外接矩形的方法
2019/07/01 Python
天游软件面试
2013/11/23 面试题
小学教学随笔感言
2014/02/26 职场文书
高中学生评语大全
2014/04/25 职场文书
写给同学的新学期寄语
2015/02/27 职场文书
2015年办税服务厅工作总结
2015/07/23 职场文书
新学期新寄语,献给新生们!
2019/11/15 职场文书
golang的文件创建及读写操作
2022/04/14 Golang