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