今回は、ツィートの追加と削除を繰り返すために、削除のプログラムと、追加・削除を定期実行するコマンドを作成します。なお前回の記事はこちら。
テーブルの構造
ツイートを削除するテーブルの構造は以下の通り。前回と同じです。
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]
<?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;
?>
[/php]
追加・削除プログラムの定期実行
前回の記事で紹介した、追加プログラムと削除プログラムは、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さんのページが参考になると思います。
〔参考サイト〕