Erreur fatale: appel d'une fonction membre fetch_array() sur boolean

Je suis le "Fatal error: appel à une fonction membre fetch_array() sur boolean dans..." erreur lorsque vous tentez d'exécuter mon script php. Le code en question est ici:

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;
}

la ligne suivante est où le problème est:

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

Le code juste avant la fonction ci-dessus est comme suit:

   function clearBackupPrices()
{
    global $mysqli;

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

J'ai fait des recherches et le regarda dans les autres réponses à la même question, mais n'avait aucune chance de le résoudre. Quelqu'un aurait-il une suggestion pour mon problème, s'il vous plaît? Je vous remercie tous à l'avance.

  • Je crois que j'ai trouvé le problème. découvrez ma réponse
  • Pouvez-vous ajouter la ligne if(!$backup) print_r($mysqli->error); et de nous montrer toute sortie...
  • Unknown column 'p.price_sync' in 'field list' - le résultat que j'ai obtenu après l'ajout de la ligne, comme l'a suggéré. @ImClarky
  • Ainsi que doit vous donner les informations dont vous avez besoin. Soit la colonne price_snyc n'existent pas dans la oc_product table, ou il ya quelque chose comme une faute de frappe...
  • Maintenant que j'ai ajouté th colonnes manquantes dans le tableau, j'obtiens l'erreur suivante: Warning: stream_socket_enable_crypto(): SSL opération a échoué avec le code 1. OpenSSL messages d'Erreur: erreur:14090086:SSL routines:SSL3_GET_SERVER_CERTIFICATE:certificat de vérifier échoué dans .../class.smtp.php sur la ligne 338
  • découvrez cette question. Voir si cela aide 🙂

InformationsquelleAutor Nancy | 2016-05-26