Mam problem z sprawdzeniem, czy FB User_id już istnieje w moim db (jeśli nie, to powinien zaakceptować użytkownika jako nowy, a po prostu wczytaj aplikację canvas). Pobiegłem go na mojego hostingu i nie było problemu, ale na moim localhost to daje mi następujący błąd:mysqli_fetch_array() oczekuje, że parametr 1 będzie mysqli_result, boolean podany w
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
Oto mój kod:
<?
$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;
}
Czytałem, że ma coś z moim błędnym pytaniem, ale działało to na moim dostawcy hostingu, więc nie może być to!
Trzeba dodać błąd obsługi dla zapytań, dzięki czemu można dowiedzieć się dokładnie, dlaczego się niepowodzeniem. Istnieje również znaczna luka w zabezpieczeniach SQL injection. –
Proszę, ** proszę ** użyć funkcji przygotowanej 'mysqli' przygotowanej do [poprawnie wymykają się zapytania SQL] (http://bobby-tables.com/php). – tadman