Php 致命错误:对非对象调用成员函数real\u escape\u string()
将此代码从mysql转换为mysqli后,在登录页面执行时出现错误,错误为:致命错误:在第127行的dbc.php中的非对象上调用成员函数real_escape_string。不幸的是,我不能帮助自己纠正它…任何帮助都将不胜感激 下面给出了dbc.php $link变量没有传递到函数中,因此需要查看。因此,您需要将$link传递到您的函数中,例如,函数filter$link、$data{,然后像$cookie\u user\u id=filter$link、$\u cookie['user\u id'];那样调用它。注销函数和使用$link的任何其他函数也是如此。您正在使用的Php 致命错误:对非对象调用成员函数real\u escape\u string(),php,mysqli,Php,Mysqli,将此代码从mysql转换为mysqli后,在登录页面执行时出现错误,错误为:致命错误:在第127行的dbc.php中的非对象上调用成员函数real_escape_string。不幸的是,我不能帮助自己纠正它…任何帮助都将不胜感激 下面给出了dbc.php $link变量没有传递到函数中,因此需要查看。因此,您需要将$link传递到您的函数中,例如,函数filter$link、$data{,然后像$cookie\u user\u id=filter$link、$\u cookie['user\u
global $db;
在一些数据库函数中。但在代码的前面,您做了以下操作:
$link = new mysqli(DB_HOST, DB_USER, DB_PASS) or die("Couldn't make connection.");
$db = $link->select_db(DB_NAME) or die("Couldn't select database");
选择_db.$link是您的数据库连接,而不是$db
筛选器函数使用$link,但不将其声明为全局或接受为参数。但不应使用该函数。应使用准备好的语句,而不是转义字符串,并在以下查询中直接使用它们:
"select `ckey`,`ctime` from `users` where `id` ='$cookie_user_id'"
您可以查看更多信息。因为我在某处迷路了……有人能更正代码吗?您需要将函数filter$data{更改为函数filter$link$data{和function logout到function logout$link。然后在登录页面中,您需要更改filter$value;filter$link,value;以及您看到logout的任何位置;应该是logout$link;请停止使用PHP 5。您早就应该升级了。您的代码易受SQL注入攻击。您应该使用准备好的语句。不要使用filt之类的函数呃。他们所做的就是破坏你的数据。这是一种可怕的做法,应该避免。