getConnection(); $query_str = "SELECT * from twitter_profile WHERE name = {$db->quote($name)} AND flag != 2; "; $data = $db->fetchRow($query_str); if (!$data) return false; // 更新フラグ 有効期限 10日間 if(strtotime($data['updated']) < time() - 60*60*24*10 && $data['flag'] == 0) { error_log("Update Flag -> 1: $name"); $query_str = "UPDATE twitter_profile SET flag = 1 WHERE name = {$db->quote($name)}; "; $db->query($query_str); } unset($data['updated']); unset($data['flag']); unset($data['name']); unset($data['json_data']); $data['follow'] = (int)$data['follow']; $data['follower'] = (int)$data['follower']; $data['listed'] = (int)$data['listed']; $data['count'] = (int)$data['count']; $data['user_id'] = (int)$data['user_id']; $data['protected'] = (int)$data['protected']; return $data; } // 小文字で記録しておく function set_db($data, $name) { $db_twitter_profile = new Db(); $db = $db_twitter_profile->getConnection(); $query_str = "INSERT INTO twitter_profile SET name = {$db->quote($name)}, screen_name = {$db->quote($data['screen_name'])}, img = {$db->quote($data['img'])}, fn = {$db->quote($data['fn'])}, adr = {$db->quote($data['adr'])}, url = {$db->quote($data['url'])}, bio = {$db->quote($data['bio'])}, follow = {$db->quote($data['follow'])}, follower = {$db->quote($data['follower'])}, listed = {$db->quote($data['listed'])}, count = {$db->quote($data['count'])}, user_id = {$db->quote($data['user_id'])}, protected = {$db->quote($data['protected'])}, json_data = {$db->quote($data['json_data'])}, flag = 0 ON DUPLICATE KEY UPDATE screen_name = {$db->quote($data['screen_name'])}, img = {$db->quote($data['img'])}, fn = {$db->quote($data['fn'])}, adr = {$db->quote($data['adr'])}, url = {$db->quote($data['url'])}, bio = {$db->quote($data['bio'])}, follow = {$db->quote($data['follow'])}, follower = {$db->quote($data['follower'])}, listed = {$db->quote($data['listed'])}, count = {$db->quote($data['count'])}, user_id = {$db->quote($data['user_id'])}, protected = {$db->quote($data['protected'])}, json_data = {$db->quote($data['json_data'])}, flag = 0, updated = {$db->quote(date('Y-m-d H:i:s', time()))} "; // updated入れてるのは、変化なくても日時を入れるため。 $db->query($query_str); // すべてのTwitterアクセス時のをHistoryに残す。 ただしキャッシュ聞いているのでそんなには残らないはず。 // →おいおい、プロフィール変更履歴機能とか提供したい。 $query_str = "INSERT INTO twitter_profile_history SET name = {$db->quote($name)}, screen_name = {$db->quote($data['screen_name'])}, img = {$db->quote($data['img'])}, fn = {$db->quote($data['fn'])}, adr = {$db->quote($data['adr'])}, url = {$db->quote($data['url'])}, bio = {$db->quote($data['bio'])}, follow = {$db->quote($data['follow'])}, follower = {$db->quote($data['follower'])}, listed = {$db->quote($data['listed'])}, count = {$db->quote($data['count'])}; "; $db->query($query_str); } // 最優先をスタックする インサートのみのはず。 function set_stack($name, $flag = FALSE) { // $flag がたったら、クエリは投げない。 $db_twitter_profile = new Db(); $db = $db_twitter_profile->getConnection(); $data = array( 'name' => $name, 'img' => 'http://api.osae.me/getwip/img.d/loading.png', 'fn' => 'Now Loading...', 'adr' => '', 'url' => '', 'bio' => '', 'follow' => '', 'follower' => '', 'listed' => '', 'count' => '', ); $query_str = "INSERT INTO twitter_profile SET name = {$db->quote($name)}, screen_name = {$db->quote($data['name'])}, img = {$db->quote($data['img'])}, fn = {$db->quote($data['fn'])}, adr = {$db->quote($data['adr'])}, url = {$db->quote($data['url'])}, bio = {$db->quote($data['bio'])}, follow = {$db->quote($data['follow'])}, follower = {$db->quote($data['follower'])}, listed = {$db->quote($data['listed'])}, count = {$db->quote($data['count'])}, flag = 2 ON DUPLICATE KEY UPDATE screen_name = {$db->quote($data['name'])}, img = {$db->quote($data['img'])}, fn = {$db->quote($data['fn'])}, adr = {$db->quote($data['adr'])}, url = {$db->quote($data['url'])}, bio = {$db->quote($data['bio'])}, follow = {$db->quote($data['follow'])}, follower = {$db->quote($data['follower'])}, listed = {$db->quote($data['listed'])}, count = {$db->quote($data['count'])}, flag = 2 "; if (! $flag ) $db->query($query_str); // $data['name'] = 'Now Loading...'; $data['screen_name'] = $name; return $data; }