(PHP/MySQL)ファイル操作、データベース更新メモ

コーディング時に調べたことのメモ

PHP

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);

関連エントリー

  1. PHPでMySQLデータベースにデータを追加する/参照する
  2. PHPのPDOでMySQLデータベースのデータを更新する(アクセスカウンタ)
  3. PHPの学習
  4. PHPのPDOでMySQLデータベースのデータを更新する2(投稿内容の変更)
  5. PHPのPDOでMySQLデータベースのデータを取得する2
This entry was posted in 未分類 and tagged , . Bookmark the permalink.