web-dev-qa-db-fra.com

mysqli_fetch_array () s'attend à ce que le paramètre 1 soit mysqli_result, booléen donné dans

Je ne parviens pas à vérifier si un utilisateur_id Facebook existe déjà dans ma base de données (dans le cas contraire, il devrait alors accepter l'utilisateur en tant que nouveau et charger simplement l'application de la zone de dessin). Je l'ai couru sur mon serveur d'hébergement et il n'y a pas eu de problème, mais sur mon hôte local cela me donne l'erreur suivante:

mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in

Voici mon code:

<?
$fb_id = $user_profile['id'];
$locale = $user_profile['locale'];

if ($locale == "nl_NL") {
    // Checking User Data @ WT-Database
    $check1_task = "SELECT * FROM `users` WHERE `fb_id` = " . $fb_id . " LIMIT 0, 30 ";
    $check1_res = mysqli_query($con, $check1_task);
    $checken2 = mysqli_fetch_array($check1_res);
    print $checken2;
    // If the user does not exist @ WT-Database -> insert
    if (!($checken2)) {
        $add = "INSERT INTO users (fb_id, full_name, first_name, last_name, email) VALUES ('$fb_id', '$full_name', '$first_name', '$last_name', '$email')";
        mysqli_query($con, $add);
    }
    // Double-check, the user won't be able to load the app on failure inserting to the database
    if (!($checken2)) {
        echo "Excuse us " . $first_name . ". Something went terribly wrong! Please try again later!";
        exit;
    }
} else {
    include ('sorrylocale.html');
    exit;
}

J'ai lu que cela avait quelque chose à voir avec ma requête étant erronée, mais cela a fonctionné sur mon fournisseur d'hébergement alors ça ne peut pas être ça!

37
Mats de Swart

Cette requête échoue et renvoie false.

Mettez ceci après mysqli_query() pour voir ce qui se passe.

if (!$check1_res) {
    printf("Error: %s\n", mysqli_error($con));
    exit();
}

Pour plus d'informations:

http://www.php.net/manual/en/mysqli.error.php

102
castis