湖南建设监理协会网站,海口关键词优化报价,百度一下的网址,网站报错401一、实现功能#xff0c;数据表前缀、alias、model、table、join方法实现 二、表前缀实现
1、config.php增加表前缀 DB_PEXfa_,//数据库前缀 2、增加表前缀方法function.php
function model($table){$modelnew ModelBase($table,config(DB_PEX));return $m…一、实现功能数据表前缀、alias、model、table、join方法实现 二、表前缀实现
1、config.php增加表前缀 DB_PEXfa_,//数据库前缀 2、增加表前缀方法function.php
function model($table){$modelnew ModelBase($table,config(DB_PEX));return $model;
}
function table($table){return new ModelBase($table);
}3、PDO数据表增加表前缀ModelBase.php private $pex;//表前缀public function __construct($tablenull,$pex){$this-pex$pex;if($table){$this-table$this-pex.$table;}if(!$this-table){die(no table );}$this-_connect();$this-_opt();}
三、alias数据表别名和join实现实现ModelBase.php private function _opt(){$this-optarray(filed*,where,group,having,order,limit,alias,join,);}public function alias($as){$this-opt[alias] as .$as. ;return $this;}public function join($join,$condition,$type){$this-opt[join] {$type} join .$this-pex.trim($join). on {$condition};return $this;}public function select(){$sql SELECT .$this-opt[filed]. FROM .$this-table.$this-opt[alias].$this-opt[join].$this-opt[where].$this-opt[group].$this-opt[having].$this-opt[order].$this-opt[limit];$stmt $this-pdo-prepare($sql);$stmt-execute();return $stmt-fetchAll(PDO::FETCH_ASSOC);}
四、控制器实现数据表前缀、alias、model、table、join方法查询 public function index(){$data model(test)-filed(t.*,r.role)-alias(t)-join(role r,t.idr.testId,left)-select();var_dump($data);$data table(fa_test)-select();var_dump($data);}
五、完整ModelBase.php代码
?php
class ModelBase
{public $pdo NULL;public $table NULL;public $opt;private $pex;//表前缀public function __construct($tablenull,$pex){$this-pex$pex;if($table){$this-table$this-pex.$table;}if(!$this-table){die(no table );}$this-_connect();$this-_opt();}private function _connect(){if($this-pdo){return true;}$host config(DB_HOST);$db config(DB_DATABASE);$user config(DB_USER);$pass config(DB_PWD);$dsn mysql:host$host;dbname$db;charsetutf8;try {$this-pdo new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE PDO::ERRMODE_EXCEPTION]);} catch (PDOException $e) {die(数据库连接失败: . $e-getMessage());}}private function _opt(){$this-optarray(filed*,where,group,having,order,limit,alias,join,);}public function alias($as){$this-opt[alias] as .$as. ;return $this;}public function join($join,$condition,$type){$this-opt[join] {$type} join .$this-pex.trim($join). on {$condition};return $this;}public function where($where){$this-opt[where] WHERE .$where;return $this;}public function order($order){$this-opt[order] ORDER BY .$order;return $this;}public function group($group){$this-opt[group] GROUP BY .$group;return $this;}public function having($having){$this-opt[having] having .$having;return $this;}public function filed($filed){$this-opt[filed] $filed;return $this;}public function limit($limit){$this-opt[limit] limit .$limit;return $this;}public function select(){$sql SELECT .$this-opt[filed]. FROM .$this-table.$this-opt[alias].$this-opt[join].$this-opt[where].$this-opt[group].$this-opt[having].$this-opt[order].$this-opt[limit];$stmt $this-pdo-prepare($sql);$stmt-execute();return $stmt-fetchAll(PDO::FETCH_ASSOC);}public function find(){$data$this-limit(1)-select();return current($data);}public function delete(){$sql DELETE FROM .$this-table.$this-opt[where];$stmt $this-pdo-prepare($sql);$stmt-execute();return $stmt-rowCount();}public function insert( $data) {// 准备SQL语句$fields implode(, , array_keys($data));$values : . implode(, :, array_keys($data));$sql INSERT INTO . $this-table. (.$fields.) VALUES (.$values.);// 绑定参数并执行SQL语句$stmt $this-pdo-prepare($sql);foreach ($data as $key $value) {$stmt-bindValue(: . $key, $value);}return $stmt-execute();}public function update( $data){if(empty($this-opt[where])) die(更新语句必须有were条件);$up;foreach ($data as $k$v){$up..$k..$v.;}$sqlupdate .$this-table. set .$up.$this-opt[where];$stmt $this-pdo-prepare($sql);$stmt-execute();return $stmt-rowCount();}}