【问题标题】:How to convert object to MySQLi in this below code?如何在下面的代码中将对象转换为 MySQLi?
【发布时间】:2019-05-25 20:01:15
【问题描述】:

您好,我正在尝试将此 CMS 中的所有旧 mysql 查询替换为 PHP 7 的 mysqli。但我在每个页面上都收到以下错误。

PHP 警告:mysqli_query() 期望参数 1 为 mysqli,对象在 ..中给出。

在这个 CMS 中,每个页面都包含一个 db 类文件,但我无法将对象转换为 mysqli 用于 mysqli_query

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);
  ?>

【问题讨论】:

标签: php mysqli


【解决方案1】:

您的 db 类不是 MySQLi 的实例。它不继承,而是有一个名为 $db 的公共属性。您应该在 mysqli_query 中使用此属性。但是,关键字var 应替换为public

$query = mysqli_query($instance->db, "SELECT * FROM adam_docs WHERE doc_id = '24' ORDER BY doc_name ASC");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-15
    • 1970-01-01
    • 1970-01-01
    • 2020-06-13
    • 2023-02-09
    相关资源
    最近更新 更多