基于php和mysql的简单的dao类

新客网 XKER.COM 时间:2014-01-28 21:21:09来源:lkiarest  评论:

一个简单的dao,实现基本的CRUD功能,可以继承扩展为实际业务的dao类,
当然也可以直接使用

  1. <?php 
  2.     //require_once('FirePHPCore/FirePHP.class.php'); 
  3.     //$firephp = FirePHP::getInstance(true); // debugger in firefox 
  4.     class SimpleDao { 
  5.         private $_table = null; 
  6.         private static $_con = null; 
  7.  
  8.         public function SimpleDao() { 
  9.             if ($this->_con == null) { 
  10.                 $this->_con = @mysql_connect("localhost""root""123456"); 
  11.                 if ($this->_con == FALSE) { 
  12.                     echo("connect to db server failed."); 
  13.                     $this->_con = null; 
  14.                     return
  15.                 } 
  16.                 //$firephp->log("new DAO object"); 
  17.                 @mysql_select_db("swan"$this->_con); 
  18.             } 
  19.         } 
  20.  
  21.         public function table($tablename) { 
  22.             $this->_table = $tablename
  23.             return $this
  24.         } 
  25.  
  26.         public function query($sql) { 
  27.             $result = @mysql_query($sql); 
  28.             $ret = []; 
  29.             if ($result) { 
  30.                 while ($row = mysql_fetch_array($result)) { 
  31.                     $ret[] = $row
  32.                 } 
  33.             } 
  34.             return $ret
  35.         } 
  36.  
  37.         public function get($where = null) { 
  38.             $sql = "select * from ".$this->_table; 
  39.             //$sql = $sql.$this->_getWhereString($where); 
  40.             //echo "[get]".$sql."<br>"; 
  41.             return $this->query($sql); 
  42.         } 
  43.  
  44.         public function insert($params) { 
  45.             if ($params == null || !is_array($params)) { 
  46.                 return -1; 
  47.             } 
  48.             $keys = $this->_getParamKeyString($params); 
  49.             $vals = $this->_getParamValString($params); 
  50.             $sql = "insert into ".$this->_table."(".$keys.") values(".$vals.")"
  51.             //echo "[insert]".$sql."<br>"; 
  52.             $result = @mysql_query($sql); 
  53.             if (! $result) { 
  54.                 return -1; 
  55.             } 
  56.             return @mysql_insert_id(); 
  57.         } 
  58.  
  59.         public function update($params$where = null) { 
  60.             if ($params == null || !is_array($params)) { 
  61.                 return -1; 
  62.             } 
  63.             $upvals = $this->_getUpdateString($params); 
  64.             $wheres = $this->_getWhereString($where); 
  65.             $sql = "update ".$this->_table." set ".$upvals." ".$wheres
  66.             //echo "[update]".$sql."<br>"; 
  67.             $result = @mysql_query($sql); 
  68.             if (! $result) { 
  69.                 return -1; 
  70.             } 
  71.             return @mysql_affected_rows(); 
  72.         } 
  73.  
  74.         public function delete($where) { 
  75.             $wheres = $this->_getWhereString($where); 
  76.             $sql = "delete from ".$this->_table.$wheres
  77.             //echo "[delete]".$sql."<br>"; 
  78.             $result = @mysql_query($sql); 
  79.             if (! $result) { 
  80.                 return -1; 
  81.             } 
  82.             return @mysql_affected_rows(); 
  83.         } 
  84.  
  85.         protected function _getParamKeyString($params) { 
  86.             $keys = array_keys($params); 
  87.             return implode(","$keys); 
  88.         } 
  89.  
  90.         protected function _getParamValString($params) { 
  91.             $vals = array_values($params); 
  92.             return "'".implode("','"$vals)."'"
  93.         } 
  94.  
  95.         private function _getUpdateString($params) { 
  96.             //echo "_getUpdateString"; 
  97.             $sql = ""
  98.             if (is_array($params)) { 
  99.                 $sql = $this->_getKeyValString($params","); 
  100.             } 
  101.             return $sql
  102.         } 
  103.  
  104.         private function _getWhereString($params) { 
  105.             //echo "_getWhereString"; 
  106.             $sql = ""
  107.             if (is_array($params)) { 
  108.                 $sql = " where "
  109.                 $where = $this->_getKeyValString($params" and "); 
  110.                 $sql = $sql.$where
  111.             } 
  112.             return $sql
  113.         } 
  114.  
  115.         private function _getKeyValString($params$split) { 
  116.             $str = ""
  117.             if (is_array($params)) { 
  118.                 $paramArr = array(); 
  119.                 foreach($params as $key=>$val) { 
  120.                     $valstr = $val
  121.                     if (is_string($val)) { 
  122.                         $valstr = "'".$val."'"
  123.                     } 
  124.                     $paramArr[] = $key."=".$valstr
  125.                 } 
  126.                 $str = $str.implode($split$paramArr); 
  127.             } 
  128.             return $str
  129.         } 
  130.  
  131.         public function release() { 
  132.             @mysql_close(); 
  133.         } 
  134.     } 
  135.  
  136.     function T($table) { 
  137.         return (new SimpleDao())->table($table); 
  138.     } 
  139. ?> 
  1. <?php 
  2.     include "test/simpledao.php"
  3.     $dao = T("sw_post"); 
  4.     $result = $dao->get();//get all posts 
  5.     $dao->release(); 
  6.     echo json_encode($result); 
  7. ?> 
  8.  
  9. <?php 
  10.     include "test/simpledao.php"
  11.     $dao = T("sw_post"); 
  12.     // update title where id=1 
  13.     $cnt = $dao->update(array("title"=>"Hello REST2"), array("id"=>1)); 
  14.     $dao->release(); 
  15.     echo json_encode(array("count"=>$cnt)); 
  16. ?> 
  17.  
  18. <?php 
  19.     include "test/simpledao.php"
  20.     $dao = T("sw_tag"); 
  21.         // insert new record 
  22.     $cnt = $dao->insert(array("postid"=>4, "name"=>"测试TAG")); 
  23.     $dao->release(); 
  24.     echo json_encode(array("count"=>$cnt)); 
  25. ?> 
  26.  
  27. <?php 
  28.     include "test/simpledao.php"
  29.     $dao = T("sw_tag"); 
  30.         // delete from table where name='测试TAG' 
  31.     $cnt = $dao->delete(array("name"=>"测试TAG")); 
  32.     $dao->release(); 
  33.     echo json_encode(array("count"=>$cnt)); 
  34. ?> 

本文来源:lkiarest

如果您喜欢本文请分享给您的好友,谢谢!如想浏览更多更好的PHP教程内容,请登录:http://www.xker.com/edu/dev/2/index.html

相关内容标签:PHP教程
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)