基于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数组
Oct 09 PHP
首页四格,首页五格For6.0(GBK)(UTF-8)[12种组合][9-18][版主安装测试通过]
Sep 24 PHP
php 执行系统命令的方法
Jul 07 PHP
一步一步学习PHP(3) php 函数
Feb 15 PHP
php数组函数序列之asort() - 对数组的元素值进行升序排序,保持索引关系
Nov 02 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
Jun 13 PHP
给WordPress的编辑后台添加提示框的代码实例分享
Dec 25 PHP
php构造函数与析构函数
Apr 23 PHP
php中preg_replace_callback函数简单用法示例
Jul 21 PHP
PHP排序算法之希尔排序(Shell Sort)实例分析
Apr 20 PHP
php用xpath解析html的代码实例讲解
Feb 14 PHP
PHP pthreads v3在centos7平台下的安装与配置操作方法
Feb 21 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两种去掉数组重复值的方法比较
2014/06/19 PHP
Yii隐藏URL中index.php的方法
2016/07/12 PHP
PHP多进程编程实例详解
2017/07/19 PHP
Gambit vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
JavaScript实现选择框按比例拖拉缩放的方法
2015/08/04 Javascript
简单理解Vue条件渲染
2016/12/03 Javascript
如何提高数据访问速度
2016/12/26 Javascript
通过修改360抢票的刷新频率和突破8车次限制实现方法
2017/01/04 Javascript
jQuery基本选择器和层次选择器学习使用
2017/02/27 Javascript
详解基于vue-cli优化的webpack配置
2017/11/06 Javascript
js的函数的按值传递参数(实例讲解)
2017/11/16 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
解决Vue.js 2.0 有时双向绑定img src属性失败的问题
2018/03/14 Javascript
微信小程序实现写入读取缓存详解
2019/08/30 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
JavaScript中window和document用法详解
2020/07/28 Javascript
Python实现多行注释的另类方法
2014/08/22 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
Django中reverse反转并且传递参数的方法
2019/08/06 Python
django实现HttpResponse返回json数据为中文
2020/03/27 Python
Python MOCK SERVER moco模拟接口测试过程解析
2020/04/13 Python
python与idea的集成的实现
2020/11/20 Python
英国最大的女性服装零售商:Dorothy Perkins
2017/03/30 全球购物
写自荐信有哪些不宜?
2013/10/17 职场文书
大学英语演讲稿(中英文对照)
2014/01/14 职场文书
便利店促销方案
2014/02/20 职场文书
体育之星事迹材料
2014/05/11 职场文书
摄影专业毕业生求职信
2014/08/05 职场文书
三严三实对照检查材料
2014/09/22 职场文书
毕业生爱心捐书倡议书
2015/04/27 职场文书
2015年新农村建设工作总结
2015/05/22 职场文书
春节晚会开场白
2015/05/29 职场文书
2016年国庆节新闻稿范文
2015/11/25 职场文书
浅谈pytorch中的dropout的概率p
2021/05/27 Python
详解Redis复制原理
2021/06/04 Redis