基于php和mysql的简单的dao类
时间:2021-07-01 10:21:17
帮助过:13人阅读
SimpleDao.class - //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."
"; - 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."
"; - $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."
"; - $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."
"; - $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的代码段 - include "test/simpledao.php";
- $dao = T("sw_post");
- $result = $dao->get();//get all posts
- $dao->release();
- echo json_encode($result);
- ?>
- 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));
- ?>
- 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));
- ?>
- 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));
- ?>
|
php, mysql, dao