php数据库操作model类(使用__call方法)
本文实例讲述了php数据库操作model类。分享给大家供大家参考,具体如下:
该数据库操作类使用__call()方法实现了数据的查找功能。
代码如下:
<?php /* 作者:shyhero */ define("HOSTNAME","127.0.0.1"); define("USERNAME","root"); define("PASSWORD",""); define("DATANAME","class"); classModel{ private$link; private$tableName; private$zd; private$method=array( "where"=>"", "order"=>"", "limit"=>"", "group"=>"", "having"=>"" ); publicfunction__construct($tableName){ $this->tableName=$tableName; try{ $this->link=mysqli_connect(HOSTNAME,USERNAME,PASSWORD,DATANAME); mysqli_set_charset($this->link,"UTF8"); }catch(Exception$e){ echo"数据库连接失败"; } $this->desc(); } publicfunction__destruct(){ mysqli_close($this->link); } publicfunctiondesc(){ $sql="desc{$this->tableName};"; $res=mysqli_query($this->link,$sql); $arr=mysqli_fetch_all($res,MYSQLI_ASSOC); for($i=0;$i<count($arr);$i++){ $brr[]=$arr[$i]['Field']; } $this->zd=$brr; return$brr; } publicfunction__call($name,$value){ $name=strtolower($name); if(array_key_exists($name,$this->method)){ if($name=='order'){ $this->method['order']="orderby".$value[0]; }elseif($name=='group'){ $this->method['group']="groupby".$value[0]; }else{ $this->method[$name]="{$name}".$value[0]; } }else{ return"themethodisnotfound!"; } return$this; } publicfunctionmethod(){ return"{$this->method['where']}{$this->method['order']}{$this->method['limit']}{$this->method['group']}{$this->method['having']};"; } publicfunctionfind($a="*"){ if(in_array("{$a}",$this->zd)||$a=="*"){ $sql="select{$a}from{$this->tableName}{$this->method()}"; }else{ $sql="select*from{$this->tableName}"; } //return$sql; $res=mysqli_query($this->link,$sql); $arr=mysqli_fetch_all($res,MYSQLI_ASSOC); return$arr; } }
用法示例:
<?php function__autoload($className){ require($className.".class.php"); } $a=newModel("stu"); $a->where("name='zhu'")->limit("5,10"); var_dump($a->find("name"));
更多关于PHP相关内容感兴趣的读者可查看本站专题:《php+mysql数据库操作入门教程》、《PHP基于pdo操作数据库技巧总结》、《PHP+MongoDB数据库操作技巧大全》、《php+Oracle数据库程序设计技巧总结》、《php+mssql数据库程序设计技巧总结》、《php+redis数据库程序设计技巧总结》、《php+mysqli数据库程序设计技巧总结》及《php常见数据库操作技巧汇总》
希望本文所述对大家PHP程序设计有所帮助。