警告:mysqli_query()期望参数1为mysqli,给定布尔值

时间:2015-11-19 19:45:49

标签: php mysql mysqli

嗨,我不知道如何解决这段代码......

警告:mysqli_query()要求参数1为mysqli,布尔值在第13行的/var/www/dropcs.com/data/www/site.com/model.class.php中给出

class Model 
{
    protected $_db;

    public function __construct()
    {
        if (!$this->_db) {
            $this->_db = mysqli_connect(HOSTNAME, USERNAME, PASSWORD, DATABASE);
        }

        $this->query("SET CHARSET utf-8;");
    }

    public function query($query)
    {
        return mysqli_query($this->_db, $query);
    }

    public function fetch($result, $mode = 'object')
    {
        if ($result) {
            switch($mode) {
                case 'row':
                    return mysqli_fetch_row($result);
                    break;

                case 'assoc':
                    return mysqli_fetch_assoc($result);
                    break;
            }
        }
    }
}

请帮助我

1 个答案:

答案 0 :(得分:0)

您的数据库连接失败。在您的辩护中,本案例中的手册mysqli_connect并不完全清楚。如果连接失败,mysqli_connect()将返回false。

尝试诊断问题。以下是如何将错误写入标准错误日志并退出的示例。

public function __construct()
{
    if (!$this->_db) {
        $this->_db = mysqli_connect(HOSTNAME, USERNAME, PASSWORD, DATABASE);
    }

    if(!$this->_db) {
        error_log('Mysqli Connect failed: ' . mysqli_connect_errno() . ' : ' . mysqli_connect_error());
        exit();
    }

    $this->query("SET CHARSET utf-8;");
}

沿着相同的路线写下'HOSTNAME,USERNAME,PASSWORD&的值。 DATABASE到某个地方看到这些都是不正确的。

您收到了一些负面反馈,因为您似乎没有尝试过在您的问题中诊断问题而手册中有很好的例子。如果您仍然陷入困境,请展示您尝试做的事情以便弄明白,并且您会发现这是一个非常有用的社区。