Неустранимая ошибка: вызов функции-члена fetch_array () в булевом

Я получаю сообщение «Неустранимая ошибка: вызов функции-члена fetch_array () в boolean in …» при попытке выполнить мой PHP-скрипт. Этот код находится здесь:

function backup() { global $mysqli; $bup = "SELECT p.product_id, p.ean, p.image, p.model, p.status, p.price_sync, p.modified_by, p.date_modified, pd.name, pd.description, pd.language_id, pd.meta_description, pd.meta_keyword, pd.tag FROM oc_product p INNER JOIN oc_product_description pd ON p.product_id = pd.product_id"; $backup = $mysqli->query($bup); $megainsert = "REPLACE INTO oc_product_backup(product_id, ean, image, model, status, price_sync, modified_by, date_modified, name, description, language_id, meta_description, meta_keyword, tag) VALUES "; while($row = $backup->fetch_array(MYSQLI_ASSOC)) { $product_id = $mysqli->real_escape_string($row['product_id']); $ean = $mysqli->real_escape_string($row['ean']); $image = $mysqli->real_escape_string($row['image']); $model = $mysqli->real_escape_string($row['model']); $name = $mysqli->real_escape_string($row['name']); $description = $mysqli->real_escape_string($row['description']); $meta_description = $mysqli->real_escape_string($row['meta_description']); $meta_keyword = $mysqli->real_escape_string($row['meta_keyword']); $tag = $mysqli->real_escape_string($row['tag']); $megainsert .= "('".$product_id."', '".$ean."', '".$image."', '".$model."', '".$row['status']."', '".$row['price_sync']."', '".$row['modified_by']."', '".$row['date_modified']."', '".$name."', '".$description."', '".$row['language_id']."', '".$meta_description."', '".$meta_keyword."', '".$tag."'),"; } $backup->close(); $megainsert = substr_replace($megainsert, "", -1); $dobackup = $mysqli->query($megainsert); if(!$dobackup) return $mysqli->error; else return true; } 

следующая проблема заключается в том, что проблема заключается в следующем:

 while($row = $backup->fetch_array(MYSQLI_ASSOC)) 

Код перед предыдущей функцией выглядит следующим образом:

  function clearBackupPrices() { global $mysqli; $clean = "TRUNCATE TABLE oc_product_price_backup"; $doclean = $mysqli->query($clean); if(!$doclean) return $mysqli->error; else return true; } 

Я исследовал и изучал другие ответы с тем же вопросом, но не повезло, разрешив это. У кого-нибудь есть предложение по моей проблеме, пожалуйста? Спасибо всем заранее.

Solutions Collecting From Web of "Неустранимая ошибка: вызов функции-члена fetch_array () в булевом"

Из документации php MySQLi :: query () будет:

Возвращает FALSE при ошибке. Для успешных запросов SELECT, SHOW, DESCRIBE или EXPLAIN mysqli_query () вернет объект mysqli_result. Для других успешных запросов mysqli_query () вернет TRUE.

Это означает, что следующий запрос не работает (и, следовательно, делает $backup = FALSE а не объект, который объясняет вашу инструкцию об ошибке):

 $mysqli->query($bup); 

Это, в свою очередь, означает, что оператор sql $bup вызывает ошибку. Я рекомендую просмотреть его и вашу таблицу. Похоже, что ошибка не является синтаксической ошибкой (поскольку синтаксическая ошибка вызвала еще более раннее сообщение об ошибке), а это значит, что MySQL может прочитать ваше утверждение, но по какой-то причине операция не работает. Вам нужно будет просмотреть свой SQL-оператор, а также свою таблицу и посмотреть, каков недостаток в логике.