基于php和mysql的简单的dao类

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

SimpleDao.class    

<?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);
    }
?>

使用SimpleDao的代码段    

<?php
	include "test/simpledao.php";
	$dao = T("sw_post");
	$result = $dao->get();//get all posts
	$dao->release();
	echo json_encode($result);
?>

<?php
    include "test/simpledao.php";
    $dao = T("sw_post");
    // update title where id=1
    $cnt = $dao->update(array("title"=>"Hello REST2"), array("id"=>1));
    $dao->release();
    echo json_encode(array("count"=>$cnt));
?>

<?php
	include "test/simpledao.php";
	$dao = T("sw_tag");
        // insert new record
	$cnt = $dao->insert(array("postid"=>4, "name"=>"测试TAG"));
	$dao->release();
	echo json_encode(array("count"=>$cnt));
?>

<?php
	include "test/simpledao.php";
	$dao = T("sw_tag");
        // delete from table where name='测试TAG'
	$cnt = $dao->delete(array("name"=>"测试TAG"));
	$dao->release();
	echo json_encode(array("count"=>$cnt));
?>

标签: Mysql 代码

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:网络请求的缓存机制cachePolicy 和缓存的清理

下一篇:Java计算机硬盘大小转换(B,KB,MB,GB,TB,PB之间的大小转换)