2010-05-12 2 views
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; 
} 
+0

Это ошибка? Если вы сбрасываете $ info, что вы получаете? Кстати, в условном выражении «mysql_num_rows» вы возвращаете true, не проверяя сначала, было ли выполнено выполнение mysql_query. – falomir

+0

это не дает мне никакой ошибки. это просто не вставляет никаких записей в базу данных. используя 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

+0

mysql_query возвращает TRUE или FALSE в каждом операторе SQL, который вставляет/обновляет информацию в базе данных - с другой стороны, он возвращает фактический ресурс или FALSE при ошибке в любом задании выбора. Bottomline, вы можете сделать «if (mysql_query ($ sql))» – falomir

ответ

0

, который называется установочный код вручную, а не оставлять его на facebook для пинга url.

Смежные вопросы