13

当我注意到我的一个模组给了我这个错误时,我正要打开我的网站:

致命错误:无法在第 303 行的 /var/www/vbsubscribetouser.php 中使用类型为 mysqli_result 的对象作为数组

我去了第 303 行,这就是我发现的:

//Check if requested username can be followed.
if (in_array($followingdata['usergroupid'], explode("|", $vbulletin->options['subscribetouser_usergroups_cannot']))){

以下是从第 303 行开始的所有代码:

//Check if requested username can be followed.
if (in_array($followingdata['usergroupid'], explode("|", $vbulletin->options['subscribetouser_usergroups_cannot']))){
    exit;
}

if ($followinginfo[subscribers] > 0){
    $user_followers = $followinginfo[followers].$userinfo[userid].'|';
}
else{
    $user_followers = '|'.$userinfo[userid].'|';
}

$vbulletin->db->query_write("
    UPDATE " . TABLE_PREFIX . "user
    SET subscribers = subscribers + 1, `followers` = '$user_followers'
    WHERE userid = $followinginfo[userid]
");

我不是 php 编码方面的专家,所以在打开网站之前提供一些帮助会很棒。有什么帮助/建议吗?

非常感谢!

4

1 回答 1

32

不能使用 mysqli_result 类型的对象作为数组

使用mysqli_fetch_assocmysqli_fetch_array将结果行作为关联数组获取。

$query = "SELECT 1";
$result = $mysqli->query($query);
$followingdata = $result->fetch_assoc()

或者

$followingdata = $result->fetch_array(MYSQLI_ASSOC);
于 2013-05-13T15:15:01.727 回答