首页 > 解决方案 > 建立连接时查询错误PHP

问题描述


我不明白为什么我会收到这个错误,我不明白出了什么问题..

错误:致命错误:未捕获的错误:在 null 上调用成员函数 query()
这是代码:

/**
 * @category SQL Connection
 * @description Connect to SQL Database
 */
    $conn = new mysqli('server-0275.whmpanels.com', '---', '---', '---') or die(mysqli_error());

/**
 * @sub-category Functions
 * @description Main Functions
 */

    // If it's home
        if ($_SERVER['REQUEST_URI'] == '/' || $_SERVER['REQUEST_URI'] == '/index.php') {
        /**
         * @function Users
         * @description Count registered users
         */
            function users() {
                $rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
                if ($row = mysqli_fetch_assoc($rs)) 
                    return $row['maxUsers'];
                return 0;
            }

标签: php

解决方案


$conn在函数中不可访问,users()因为它是在函数外部定义的。您可以像这样访问全局变量(不理想 - 阅读为什么不应该这样做):

function users() {
    global $conn;
    $rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
    //rest of code...
}

或者将$conn变量传递给函数

function users($conn) {
    $rs = $conn->query("SELECT MAX(`id`) AS `maxUsers` FROM `vrp_users`");
    //rest of code...
}

推荐阅读