1. TOPTOP
  2. Webサービス
  3. PHP

PHPとMySQLを使ってTwitter APIで取得したツィートの追加と削除を繰り返す(その4~データ削除のプログラミングと定期実行のコマンド)

php

今回は、ツィートの追加と削除を繰り返すために、削除のプログラムと、追加・削除を定期実行するコマンドを作成します。なお前回の記事(新しいタブで開く)はこちら。

テーブルの構造

ツイートを削除するテーブルの構造は以下の通り。前回と同じです。

create table tweet (
	id int(11) not null auto_increment primary key,
	tw_id text,
	tw_screen varchar(16),
	tw_date varchar(25),
	tw_txt text
);

ツイートを20件削除

削除の基準は、最も小さいステータスIDを持つツイートです。そのツイートを含むレコードから昇順(order by句とasc)して、20件削除します。プログラムは次のとおり。

<?php
	// PDOクラスによるデータベース接続
	try {
		$dbh = new PDO('mysql:host=localhost;dbname=tweet1;charset=utf8', 'myusername','mypassword');
	} catch(PDOException $e) {
		var_dump($e->getMessage());
		exit;
	}
	// 処理(すべてのレコードを削除)
	$stmt = $dbh->prepare("delete from tweet order by tw_id asc limit 20;");
	$stmt->execute();
	$dbh = null;

?>

追加・削除プログラムの定期実行

前回の記事で紹介した、追加プログラムと削除プログラムは、1時間ごとに定期的に実行します。そのためにcrontabコマンドを利用します。

crontab -l // crontabコマンドの内容を確認(最初は何もない)
whereis php // phpのパスを確認

/usr/bin/php // phpのパス

crontab -e // crontabコマンドの編集

// 毎時0分にツイート追加のプログラムを実行
0 * * * * /usr/bin/php /var/www/html/php_tw1/add_tweet.php 
// 毎時0分にツイート削除のプログラムを実行
1 * * * * /usr/bin/php /var/www/html/php_tw1/delete_tweet.php 

crotabの使い方について

今回は、「毎時〇分」ということで、”0 * * * *”、”1 * * * *”という使い方をしましたが、「1時間おき」という命令もできるようです。

そのあたりの月日時の使い方などについては、server-memo.netさんのページ(新しいタブで開く)が参考になると思います。

〔参考サイト〕