2013-03-15 8 views
26

Ich habe einige Probleme zu überprüfen, ob ein FB User_id bereits in meiner db existiert (wenn es nicht sollte dann Benutzer als neuen akzeptieren und sonst nur Laden Sie die Canvas-App). Ich lief es auf meinem Hosting-Server und es war kein Problem, aber auf meinem localhost es gibt mir die folgende Fehlermeldung:mysqli_fetch_array() erwartet, dass Parameter 1 mysqli_result ist, boolean in

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

Hier ist mein 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 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, User won't be able to load app on failure inserting to database 
    if (!($checken2)) { 
     echo "Excuse us " . $first_name . ". Something went terribly wrong! Please try again later!"; 
     exit; 
    } 
} else { 
    include ('sorrylocale.html'); 
    exit; 
} 

ich es gelesen habe, etwas zu mit meiner Anfrage falsch, aber es hat auf meinem Hosting-Provider funktioniert, so dass es nicht sein kann!

+2

Sie müssen Fehler hinzufügen für Ihre Fragen Handhabung so können Sie genau herausfinden, warum es versagt. Sie haben auch eine signifikante SQL-Injection-Schwachstelle. –

+1

Bitte, ** bitte ** benutzen Sie die 'mysqli' vorbereitete Anweisungsfunktion, um [Ihre SQL-Abfragen richtig zu umgehen] (http://bobby-tables.com/php). – tadman

Antwort

63

Diese Abfrage schlägt fehl und gibt false zurück.

setzen Sie dies nach mysqli_query(), um zu sehen, was los ist.

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

für weitere Informationen:

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

Verwandte Themen