0
Я пытаюсь вставить данные пользователя, которые разрешают приложение, в базу данных, но ничего похожего не происходит. данные равны нулю, а запись не вводится. что-то не так с кодом?Вставка информации о пользователе facebook app в базу данных
function insertUser($user_id,$sk,$conn)
{
//$info = $facebook->api_client->users_getInfo($user_id, 'first_name, last_name', 'name', 'sex');
$info = $facebook->api_client->fql_query("SELECT uid, first_name, last_name, name, sex FROM user WHERE uid = $user_id");
for ($i=0; $i < count($info); $i++) {
$record = $info[$i];
$first_name=$record['first_name'];
$last_name=$record['last_name'];
$full_name=$record['name'];
$gender=$record['sex'];
}
$data= mysql_query("select uid from users where uid='{$user_id}'",$conn);
if(mysql_num_rows($data)==0)
{
$sql = "INSERT INTO users (uid,sessionkey, active, fname, lname, full_name, gender) VALUES('{$user_id}','{$sk}','1', '{$first_name}', '{$last_name}', '{$full_name}', '{$gender}')";
mysql_query($sql,$conn);
return true;
}
return false;
}
Это ошибка? Если вы сбрасываете $ info, что вы получаете? Кстати, в условном выражении «mysql_num_rows» вы возвращаете true, не проверяя сначала, было ли выполнено выполнение mysql_query. – falomir
это не дает мне никакой ошибки. это просто не вставляет никаких записей в базу данных. используя var_dump, это то, что я получаю: 'array (1) {[0] => array (5) {[" uid "] => string (10)" [profile_no *] "[" first_name "] => string (4) "[name]" ["last_name"] => string (6) "lastname" ["name"] => string (11) "fullname" ["sex"] => string (0) ""}} '* Я отредактировал профиль no и имя. , а пол не извлекается. как проверить, выполнено ли выполнение mysql_query или нет? – input
mysql_query возвращает TRUE или FALSE в каждом операторе SQL, который вставляет/обновляет информацию в базе данных - с другой стороны, он возвращает фактический ресурс или FALSE при ошибке в любом задании выбора. Bottomline, вы можете сделать «if (mysql_query ($ sql))» – falomir