无法从另一个类获取mysqli标识符

时间:2015-10-21 10:45:18

标签: class mysqli identifier

我有两个类:一个用于sql,另一个用于身份验证。这些是单独的文件,只有"汇集在一起​​#34;由另一个文件中的自动加载器(index.php)。 sql类看起来像这样:

class aF_sql {
    public static $open;
    public static $char;
    public static $close;

    public static function open() {
        global $config;

        self::$open = mysqli_connect($config['aF_sql_host'], $config['aF_sql_user'], $config['aF_sql_pass'], $config['aF_sql_data']);
        if(!self::$open) {
            die('<b>ERROR (/core/sql/1): Could not initialize database connection</b>');
        }

        self::$char = mysqli_set_charset(self::$open, $config['aF_sql_char']);
        if(!self::$char) {
            die('<br>ERROR (/core/sql/2): Could not set database charset</br>');
        }

        return TRUE;
    }

    public static function close() {
        self::$close = mysqli_close(self::$open);
        if(!self::$close) {
            die('<b>ERROR (/core/sql/3): Could not close database connection');
        }

        return TRUE;
    }
}

一切正常,直到这里。我使用class :: open();打开sql连接;方法,我使用class :: close();关闭它。然后,我有一个文件,可以帮助我检查一些登录详细信息(auth类)。现在,我想要的只是提交用户名的回声。以下是内容:

class aF_auth {
    public static function login() {
        echo mysqli_real_escape_string(aF_sql::open, $_POST['username']);
    }
}

这是错误说的:警告:mysqli_real_escape_string()期望参数1为mysqli,null给定...我应该使用什么作为标识符才能执行查询?如您所知,mysqli需要连接标识符。

万分感谢

1 个答案:

答案 0 :(得分:0)

好的,我明白了!我没有在类中返回TRUE,而是返回self :: $ open。这样,我可以在软件中的任何地方使用aF_sql :: $ open,它指的是连接标识符。换句话说,它没有用,因为我没有在类中返回变量......

$administrator_query = new WP_User_Query(
    array(
        'role'=>'administrator',
    )
);
$user_query= $administrator_query->get_results();
   foreach ( $user_query->results as $user ) {
    echo '<p>' . $user->role . '</p>';
   }

就是这样......