php的class类中使用mysqli的问题 $this->conn->query 这样写好像不对,应该怎么写,怎么改?

2025-12-16 17:03:37
推荐回答(2个)
回答1:

那样写应该没错

你也可以这样写

class foo_mysqli extends mysqli {
    public function __construct($host, $user, $pass, $db) {
        parent::__construct($host, $user, $pass, $db);

        if (mysqli_connect_error()) {
            die('Connect Error (' . mysqli_connect_errno() . ') '
                    . mysqli_connect_error());
        }
    }
}

回答2:

class sqlhelper
{
private $mysqli;
private static $host='127.0.0.1';
private static $user='root';
private static $pwd='root';
private static $db='school';

public function __construct()
{
//初始化任务
$this->mysqli=new mysqli(self::$host,self::$user,self::$pwd,self::$db);
if($this->mysqli->connect_error)
{
exit('连接数据库失败'.$this->mysqli->connect_error);
}
//设置访问数据库字符集
$this->mysqli->query("set names utf8");

}
/*
* 数据查询语言DQL
/*数据查询语言DQL基本结构是由SELECT子句,FROM子句,WHERE
*
* */
public function execute_dql($sql)
{
$result= $this->mysqli->query($sql) or exit('数据库查询sql失败'.$this->mysqli->error);
return $result;
}

/*
* 数据操纵语言DML
* 1) 插入:INSERT
*2) 更新:UPDATE
*3) 删除:DELETE
**/
public function execute_dml()
{ //影响行数
$row= $this->mysqli->query($sql) or exit('操作dml失败'.$this->mysqli->error);
if(!$row)
{
return 0;//表示失败
}
else
{
if($this->mysqli->affected_rows($row)>0)
{
return 1;//表示成功
}
else
{
return 2;//表示没有行受到影响
}
}

}

}