Facebook User_idが既にデータベースに存在するかどうかを確認するのに苦労しています(もしそうでない場合は、ユーザーを新しいユーザーとして受け入れ、キャンバスアプリケーションをロードするだけです)。ホスティングサーバーで実行しましたが、問題はありませんでしたが、ローカルホストでは次のエラーが表示されます。
mysqli_fetch_array() expects parameter 1 to be mysqli_result, boolean given in
ここに私のコードがあります:
<?
$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;
}
クエリが間違っていることと関係があると読みましたが、ホスティングプロバイダーで機能しているので、それは不可能です!
そのクエリは失敗し、false
を返します。
これをmysqli_query()
の後に置いて、何が起こっているのかを見てください。
if (!$check1_res) {
printf("Error: %s\n", mysqli_error($con));
exit();
}
詳細については: