在C:wamp64www中调用一个成员函数prepare()在字符串上,包括functions.php在第86行


Call to a member function prepare() on string in C:wamp64wwwincludesfunctions.php on line 86

这是我的函数,给出错误不知道为什么它没有执行,这个if语句是第86行

if($stmt = $mysqli->prepare("SELECT time FROM login_attempts WHERE user_id=? AND time > '$valid_attempts'"))
{
    $stmt->bind_param('i', $user_id);
    $stmt->execute();
    $stmt->store_result();
    if($stmt->num_rows > 3)
    {
        return true;
    }
    else
    {
        return false;
    }
} 

我有这个文件来定义db

的细节
<?php
define("HOST", "localhost:3311");     // The host you want to connect to.
define("USER", "root");    // The database username. 
define("PASSWORD", "root");    // The database password. 
define("DATABASE", "compared");    // The database name.
define("CAN_REGISTER", "any");
define("DEFAULT_ROLE", "member");
define("SECURE", FALSE);   
?>

在这里创建连接这是文件

<?php 
include_once "C:/wamp64/www/includes/psl-config.php";
$mysqli = new mysqli(HOST, USER, PASSWORD, DATABASE);       

?>

但是一直显示错误

'$valid_attempts'更改为?并使用与i相同的绑定参数