嗨,我正在尝试将此CMS中的所有旧mysql查询替换为PHP 7的mysqli。但是我在每个页面上都遇到了以下错误。
PHP警告:mysqli_query()期望参数1为mysqli,..中给出的对象。
在此CMS中,每个页面上都包含一个db类文件,但是我无法将mysqli_query的对象转换为mysqli
用于DB.php的代码
class db {
var $query;
var $db;
var $queryArray = array();
var $showError = true;
function __construct() {
global $glob;
$this->db = mysqli_connect($glob['dbhost'], $glob['dbusername'], $glob['dbpassword']) or die(mysqli_error());
if (!$this->db) die($this->debug(true));
$selectdb = mysqli_select_db($this->db,$glob['dbdatabase']);
if (!$selectdb) die ($this->debug());
}
代码用于我要打开的页面
<?php
$instance = new db();
$query = mysqli_query($instance,"SELECT * FROM adam_docs WHERE doc_id = '24' ORDER BY doc_name ASC");
//echo $query; exit;
$num_row = mysqli_num_rows($query);
if($num_row > 0){
$results = mysqli_fetch_array($query);
?>
答案 0 :(得分:1)
您的数据库类不是MySQLi的实例。它不继承,而是具有称为$ db的公共属性。您应该在mysqli_query中使用此属性。但是,关键字var
应该替换为public
。
$query = mysqli_query($instance->db, "SELECT * FROM adam_docs WHERE doc_id = '24' ORDER BY doc_name ASC");