コーディング時に調べたことのメモ
PHP
- ディレクトリ内のファイル一覧を取得には“glob”
- ディレクトリ内のファイル数を取得には“count”
- パスの一番最後にあるファイル名を取得には”basename”
- テーブルの行数を取得するには“mysql_num_rows”
MySQL
- IGNOREを付けると、重複チェックしてからテーブルに挿入する
- INSERT IGNORE INTO table (col1, col1, …) VALUES (v1, v2, …)
- 条件に合致するデータをインクリメントする
- UPDATE table SET col_counter=(col_counter+1) WHERE col_filename=”xxx”
コード断片
require_once('config.php'); mysql_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die(mysql_error()); mysql_select_db(DB_NAME) or die(mysql_error()); mysql_query('SET NAMES UTF8'); // ディレクトリ内のファイル数を取得 $files = glob('data/*'); $filenum = count($files); // テーブルの行数を取得 $query = 'SELECT * FROM table_name'; $recordSet = mysql_query($query); $datanum = mysql_num_rows($recordSet); if ($filenum > $datanum) { foreach ($files as $filepath) { $file = basename($filepath); // パスの最後にある名前を取得 $query = sprintf('INSERT IGNORE INTO table_name (filename, counter) VALUES ("%s", 0)', $file); mysql_query($query); } }
$query = sprintf('UPDATE table_name SET counter = (counter + 1) WHERE filename = "%s"', $filename); mysql_query($query);
関連エントリー