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ファイルに書き込む処理。