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 で行う

try{

}catch(PDOException $e){
	echo $e->getMessage();
	exit;
}

echo $e->getMessage();

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

PDOでDB接続は

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

で行う

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

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

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

$sql ="select * from usrs where tw_user_id = :id limit 1";

        $stmt =$dbh->prepare($sql);
        $stmt->execute(array(":id"=>$me->id_str));

で実行できる

もしユーザがいるなら

 $user = $stmt->fetch();

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

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

この判定をするには

if(!$user){

とすればOK

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

$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() としているのは、現在時刻を使うから

コメントを残す

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