基于mysqli的数据库操作类
<?php /***************************** 数据库访问类(MySQLi版) ******************************/ class MySQLiDb{ //数据库链接本身 private $link; //最后一次执行的sql语句 private $sql; //初始化类 public function __construct($hostname,$username,$password,$database){ $this->link=new mysqli($hostname,$username,$password,$database); if(mysqli_connect_error()){ $errorInfo=‘Error:Could not make a database link (‘. mysqli_connect_errno().‘)‘.mysqli_connect_error(); throw new ErrorException($errorInfo, 1); } $this->link->set_charset("utf8"); } //获取插入后生成的ID private function getLastId(){ return $this->link->insert_id; } //获取影响的行数 private function countAffected(){ return $this->link->affected_rows; } //将数组格式的条件组装成字符串 private function rewhere($where){ $str=‘‘; foreach($where as $key=>$value){ if(!empty($str)){ $str.=‘ and ‘; } $rekey=$this->link->escape_string($key); $revalue=$this->link->escape_string($value); $str.=is_numeric($revalue)?"`$rekey`=$revalue":"`$rekey`=‘$revalue‘"; } return $str; } public function create($table,$model){ $fields=‘‘; $values=‘‘; foreach ($model as $key => $value) { if($fields){ $fields.=‘,‘; } $fields.="`$key`"; if($values){ $values.=‘,‘; } $values.=is_numeric($value)?$value:"‘".$this->link->escape_string($value)."‘"; } $this->sql="INSERT INTO `$table`($fields) VALUES($values)"; echo $this->sql; $this->link->query($this->sql); return $this->link->insert_id; } public function modify($table,$model,$where){ $assins=‘‘; $where=$this->rewhere($where); foreach ($model as $key => $value) { $rkey=$this->link->escape_string($key); $rvalue=$this->link->escape_string($value); if(!is_numeric($rvalue)){ $rvalue="‘".$rvalue."‘"; } $assins.=$assins?",`$rkey`=$rvalue":"`$rkey`=$rvalue"; } $this->sql="UPDATE `$table` SET $assins WHERE $where"; echo $this->sql; $this->link->query($this->sql); } public function remove($table,$where){ $where=$this->rewhere($where); $this->sql="DELETE FROM `$table` WHERE $where"; echo $this->sql; $this->link->query($this->sql); } public function search($table,$where){ $where=$this->rewhere($where); $this->sql="SELECT * FROM `$table` WHERE $where"; $this->link->query($this->sql); $result=$this->link->query($this->sql); return $result -> fetch_assoc(); } public function unique($table,$where){ $where=$this->rewhere($where); $this->sql="SELECT * FROM `$table` WHERE $where LIMIT 1"; $result=$this->link->query($this->sql); return $result -> fetch_object(); } }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。