在下面的代码中如何将对象转换成MySQLi?

时间:2019-05-25 20:01:15

标签: php mysqli

嗨,我正在尝试将此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);
  ?>

1 个答案:

答案 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");