Я собираюсь открыть свой сайт, когда я заметил, что один из моих модов дает мне эту ошибку:
Неустранимая ошибка: нельзя использовать объект типа mysqli_result как массив в /var/www/vbsubscribetouser.php в строке 303
- PHP для EasyPHP MySQL сервер 1 секунда задержки соединения
- Командная строка php mysqli терпит неудачу, но работает через веб-сервер и работает в локальной
- Извлечение данных из базы данных и их отображение с помощью ajax
- Должен ли я использовать mysqli_real_escape_string или использовать подготовленные инструкции?
- MySQLi: как вставить в несколько таблиц с подготовленными операторами
Я пошел на строку 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] ");
-//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, поэтому немного помогло бы, прежде чем открывать сайт. Любая помощь / предложения?
Большое спасибо!
Нельзя использовать объект типа mysqli_result как массив
Используйте mysqli_fetch_assoc
или mysqli_fetch_array
для извлечения строки результата как ассоциативного массива.
$query = "SELECT 1"; $result = $mysqli->query($query); $followingdata = $result->fetch_assoc()
или
$followingdata = $result->fetch_array(MYSQLI_ASSOC);