类是这样写的:
<?php
class DB{
//属性
private $host;
private $port;
private $name;
private $pass;
private $dbname;
private $prefix; //设置表前缀
private $charset;//设置字符集
private $mysqli; //设置mysqli类对象
//设置构造函数
public function __construct($arr=array()){
$host=isset($arr['host']) ? $arr['host'] : 'localhost';
$port=isset($arr['port']) ? $arr['port'] : '3306';
$name=isset($arr['name']) ? $arr['name'] : 'root';
$pass=isset($arr['pass']) ? $arr['pass'] : 'root';
$dbname=isset($arr['dbname']) ? $arr['dbname'] : 'mydatabase';
$prefix=isset($arr['prefix']) ? $arr['prefix'] : '';
$charset=isset($arr['charset']) ? $arr['charset'] : 'utf8';
//连接数据库
$this->connect();
//设置字符集
$this->setCharset();
}
//连接数据库
private function connect(){
$this->mysqli = new mysqli($this->host,$this->name,$this->pass,$this->dbname);
if(!$this->mysqli){
//如果结果出错了 暴力处理 在实际生产过程中 应写入错误日志中
echo '数据库连接错误.<br/>';
echo '错误编号'.$this->mysqli->connect_errno,'<br/>';
echo '错误内容'.$this->mysqli->connect_error,'<br/>';
exit;
}
}
//设置字符集
private function setCharset(){
$this->db_query("set names {$this->charset}");
}
//插入数据
public function db_insert($sql){
$this->db_query($sql);
return $this->mysqli->affected_rows ? $this->mysqli->insert_id : false;
}
//删除数据
public function db_delete($sql){
$this->db_query($sql);
return $this->mysqli->affected_rows ? $this->mysqli->affected_rows : false;
}
//更新数据
public function db_update($sql){
$this->db_query($sql);
return $this->mysqli->affected_rows ? $this->mysqli->affected_rows : false;
}
//查询一条数据
public function db_getRow($sql){
$res=$this->db_query($sql);
return $res->num_rows ? $res->fetch_assoc() : false;
}
//查询多条数据
public function db_getAll($sql){
$res=$this->db_query($sql);
if($res->num_rows){
$list=array();
while($row=$res->fetch_assoc()){
$list[]=$row;
}
return $list;
}
return false;
}
//$mysqli->query()错误处理
private function db_query($sql){
$res=$this->mysqli->query($sql);
if(!$res){
echo '语句出现错误<br/>';
echo '错误编号'.$this->mysqli->errno,'<br/>';
echo '错误内容'.$this->mysqli->error,'<br/>';
exit;
}
return $res;
}
}
实例化这个类:
<?php
function __autoload($a){
if(is_file("$a.class.php")){
include_once "$a.class.php";
}
}
$db=new DB(array());
但是会报错 如图片所示