首页 文章

致命错误:在[重复]中调用非对象的成员函数query()

提问于
浏览
-1

可能重复:在query()中的非对象上调用成员函数query()?

我得到了

致命错误:尝试从我的数据库中的Account表中获取行计数时,在非对象上调用成员函数query() . 这是代码:

$link = mysqli_connect("localhost", "Username", "Password", "Database");    
        if ($result = $mysqli->query($link, "SELECT * FROM Accounts WHERE Username=" . $_POST['EmailTbx'] . " AND Password=" . $_POST['PasswordTbx'] . "")){
            $field_cnt = $result->field_count;
            echo $field_cnt;
            $result->close();
        }
        $mysqli->close();

2 回答

  • -2

    看起来你的变量混乱了 . 尝试以下(不防止注射):

    $link = mysqli_connect("localhost", "Username", "Password", "Database");    
            if ($result = $link->query("SELECT * FROM Accounts WHERE Username='{$_POST['EmailTbx']}' AND Password='{$_POST['PasswordTbx']}'")){
                $field_cnt = $result->field_count;
                echo $field_cnt;
                $result->close();
            }
            $mysqli->close();
    

    通过转义尝试以下内容:

    $link = mysqli_connect("localhost", "Username", "Password", "Database");
    $email = mysqli_real_escape_string($link, $_POST['EmailTbx']);
    $pass = mysqli_real_escape_string($link, $_POST['PasswordTbx']);
            if ($result = $link->query("SELECT * FROM Accounts WHERE Username='{$email}' AND Password='{$pass}'")){
                $field_cnt = $result->field_count;
                echo $field_cnt;
                $result->close();
            }
            $mysqli->close();
    
  • 1

    你的MySQLi对象是 $link . 不是 $mysqli . 所以要么使用

    $link->query()
    

    要么

    mysqli_query($link, ...)
    

    这是原始版本

相关问题