Php &引用;对成员函数的调用。。“在非对象上”;

Php &引用;对成员函数的调用。。“在非对象上”;,php,sql,login,Php,Sql,Login,(除了作者忘记了一些花括号,我更改了密码等)。我的问题在register.inc.php文件中 当用户尝试注册时,我收到以下错误 对第48行/home///includes/register.inc.php中的非对象调用成员函数prepare() 文件的第48行是 $stmt = $members_mysqli->prepare($prep_stmt); 下面是整个register.inc.php文件: (该网站的格式不正确)$members\u mysqli可能是一个打字错误。它从未被

(除了作者忘记了一些花括号,我更改了密码等)。我的问题在register.inc.php文件中

当用户尝试注册时,我收到以下错误

对第48行/home///includes/register.inc.php中的非对象调用成员函数prepare()

文件的第48行是

$stmt = $members_mysqli->prepare($prep_stmt);
下面是整个register.inc.php文件:


(该网站的格式不正确)

$members\u mysqli可能是一个打字错误。它从未被创造过。您使用另一个名为$mysqli的变量。也许这就是你想用的。检查include文件,确保您实际实例化了$members\u mysqli

尝试将未创建/未实例化的变量用作对象时,会引发“在非对象上调用成员函数”错误

例如:

// create an object
$blah = new Blah();

// call a function on it
$blah->doSomething();

// no error, because $blah exists.  however, if my next line is:
$blue->doSomething();

// I'd get an error because $blue was never created

快速浏览一下,您可能需要使用
$mysqli->prepare
,而不是
$members\u mysqli->prepare
,因为它在代码的第30行与一个非常类似的SQL查询一起使用。查看相关问题。从提供的代码来看,他是正确的,
$members\u mysqli
没有实例化。