2015.6.12
2020.1.7

JSONファイルの作成

クライアントからDBにアクセスするようなリクエストがある場合、リクエストの度に毎回SQLを実行するのはサーバに負荷がかかるので、リクエスト結果のデータが頻繁に変わらないようなデータについては、事前にJSONファイルを作成しておきます。

バージョン)
 PHP 5.4
 MySQL 5.6.17

コード

◆ DBから取得してきたデータをJSONファイルとして出力


$dbh = new PDO("mysql:dbname=test_db;host=localhost", "test_user", "test123");

$sql = " SELECT * FROM tbl_test ";
$sql .= " WHERE id = :test_id ";
$sql .= "   AND name = :test_name ";

$stmt = $dbh->prepare($sql);
$stmt->bindParam(":test_id", 999, PDO::PARAM_INT);
$stmt->bindParam(":test_name", "テスト", PDO::PARAM_STR);
$stmt->execute();

$testData = array();
while($row = $stmt->fetch(PDO::FETCH_ASSOC)){
	$testData[] = array(
			 'test_id' => $row['id']
			,'test_name'=> $row['name']
		);
}

// JSONファイル作成
$fp = fopen("C:/test.json", 'wb+');
if ($fp){
	if (flock($fp, LOCK_EX)){
		// ファイルにJSONデータを書き込む
		if (fwrite($fp, json_encode($testData)) === FALSE){
			// 書き込み失敗
		}else{
			// 正常終了
		}
		flock($fp, LOCK_UN);
	}else{
		// ファイルロック失敗
	}
}
fclose($fp);

1~18行目が出力データの取得。

20~35行目が取得したデータをJSONファイルに書き込む処理。

参考リンク

PHP】関連記事