twitter ユーザ情報をDB格納

twitter ユーザ情報をDB格納

3ヶ月前につまづいたところが
ようやく解決したので

#09 ユーザー情報を格納してみよう (1)
http://dotinstall.com/lessons/tw_connect_php_v2/21909
を参考に
認証したユーザの情報をDBに格納していく

注意点としては
twitter id は 64bit の整数のため
32bit OS では数値として正しく扱えないとのこと
このため twitter API では
id の文字列表現を
id_str に入れている

32bit OSなら $me->id_str だけど
64bit OSなら $me->id でもOKらしい

とりあえず、これに注意しながら行っていく

DB接続処理は、callback.php へ追記していく

DB接続は PDO形式で行い try catch で行う

1
2
3
4
5
6
7
8
try{
 
}catch(PDOException $e){
    echo $e->getMessage();
    exit;
}
 
echo $e->getMessage();

はエラーメッセージの表示

PDOでDB接続は

1
$dbh = PDO(DSN,DB_USER, DB_PASSWORD);

で行う

この大文字は config.php で設定した定数

次に、DBを参照し
すでに指定したユーザがいるなら、そのユーザを使い
存在しないのなら新規にDBへ格納する

まずは、存在の有無を確認

1
2
3
4
$sql ="select * from usrs where tw_user_id = :id limit 1";
 
        $stmt =$dbh->prepare($sql);
        $stmt->execute(array(":id"=>$me->id_str));

で実行できる

もしユーザがいるなら

1
$user = $stmt->fetch();

で$userに情報が格納される

もし、$user の中身が空なら、指定したユーザは存在しないのでDBへ追加していく

この判定をするには

1
if(!$user){

とすればOK

DBへ新しくデータを入れるには

1
2
3
$sql ="insert into users
                        (tw_user_id,tw_screen_name,tw_access_token,tw_access_token_secret,createdmodified)
                        values( :tw_user_id,:tw_screen_name,:tw_access_token,:tw_access_token_secret,now(),now())";

というようにプレースホルダーを利用したSQLを使う

now() としているのは、現在時刻を使うから

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です