facebookログインで取得した【id】【last_name】【first_name】をデータベースに格納したいです。
その際、データベースに登録済みだったら格納しないようにしたいです。
カラム【user_id】にfacebookログインで取得した【id】があるかどうかで登録するかしないかの判定にしたいのですが、できませんでした。
実際に書いたのは以下のコードになります。
lang
1<?php 2require_once('../src/facebook.php'); 3 4$config = array( 5 'appId' => '*****', 6 'secret' => '*****' 7); 8 9$facebook = new Facebook($config); 10 11//ログイン済みの場合はユーザー情報を取得 12if ($facebook->getUser()) { 13 try { 14 $user = $facebook->api('/me', 'GET'); 15 $_SESSION["user_id"] = $user["id"]; 16 $_SESSION["last_name"] = $user["last_name"]; 17 $_SESSION["first_name"] = $user["first_name"]; 18 } catch (FacebookApiException $e) { 19 //取得に失敗したら例外をキャッチしてエラーログに出力 20 error_log($e->getType()); 21 error_log($e->getMessage()); 22 } 23 24 25 26 $serv = "127.0.0.1"; //サーバ 27 $user = "root"; //ユーザー名 28 $pass = ""; //パスワード 29 $db = "test"; //データベース名 30 $table1 = "user2_1"; 31 $user_id = $_SESSION["user_id"]; 32 33 try { 34 $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION); 35 $pdo = new PDO('mysql:host=' . $serv . ';dbname=' . $db . ';charset=utf8', $user, $pass, $options); 36 37 $select_sql = "select * from user2_1 where user_id = :user_id"; 38 $stmt = $pdo->prepare($select_sql); 39 $stmt->execute(array(":user_id" => $user_id)); 40 $row = $stmt->fetch(); 41 42 print_r($row->user_id); 43 if (isset($row->user_id)) { 44 45 } else { 46 $insert_sql = "insert into " . $table1 . "(" 47 . "user_id," 48 . "last_name," 49 . "first_name" 50 . ")values(" 51 . ":user_id," 52 . ":last_name," 53 . ":first_name" 54 . ")"; 55 56 $stmt = $pdo->prepare($insert_sql); 57 58 $stmt->bindValue(":user_id", $_SESSION["user_id"]); 59 $stmt->bindValue(":last_name", $_SESSION["last_name"]); 60 $stmt->bindValue(":first_name", $_SESSION["first_name"]); 61 62 $stmt->execute(); 63 } 64 } catch (Exception $ex) { 65 66 } 67} 68 69 70$pdo = NULL; 71?>
テーブルは
lang
1create table `user2_1`( 2 id int(11) primary key not null auto_increment, 3 `user_id` VARCHAR(10)character set utf8 not null comment 'Facebook_ID', 4 `last_name` VARCHAR(10)character set utf8 not null comment 'last_name', 5 `first_name` VARCHAR(10)character set utf8 not null comment 'first_name', 6 `date` timestamp not null comment '更新日時' 7 )
よろしくお願いします!
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/04/22 01:14