mysql2json.classでわずか3分でmysqlをjsonに変換そして保存! ITかあさん

ITかあさん

mysql2json.classでわずか3分でmysqlをjsonに変換そして保存!

PHP×Mysql×jsonそして保存をわずか3分で!

Ajaxベースで検索を行うならjson。変換して、保存してしまえばデータベースへのクエリが減り、高速サクサクサイトが作れてしまいます。
そんなわけでPHP×Mysql×jsonそして保存をわずか3分で実装したいと思います。

mysql2json.class

PHPからmysqlのデータをjson化するわけですが、とっても便利なクラスがあるので紹介します。

mysql2json.class – PHP Classes
※会員登録が必要です。(無料) 
今回紹介する以外にもたくさんのPHPのクラスやプラグインが公開されているので、オススメのサイトです。

mysql2json.classを使ってMysqlをjsonに変換!

以下は文字コードがutf-8であることを想定して行っています。
mysql2json.class.phpを先に呼び出し、Mysqlの接続設定を書いて、json変換したい内容をSQLで記述、JSONに変換を行うのが一連の流れです。

include("mysql2json.class.php");

//データベース関係 ここではutf-8 を想定
mb_language('Japanese');
ini_set('mbstring.detect_order', 'auto');
ini_set('mbstring.http_input'  , 'auto');
ini_set('mbstring.http_output' , 'pass');
ini_set('mbstring.internal_encoding', 'UTF-8');
ini_set('mbstring.script_encoding'  , 'UTF-8');
ini_set('mbstring.substitute_character', 'none');
mb_regex_encoding('UTF-8');
//MySQL接続設定
define("DBHOST", "localhost");
define("DBNAME", "");
define("DBUSER", "");
define("DBPASS", "");

//接続
$conn = mysql_connect(DBHOST, DBUSER, DBPASS) or die();
mysql_select_db(DBNAME, $conn);
mysql_set_charset('utf8');

//SQL実行
$num = 0;
$sql = "SELECT * FROM table";
$result = mysql_query($sql, $conn);
$num = mysql_affected_rows();

// JSONに変換
$objJSON = new mysql2json();

JSONデータをテキストとして保存する

$objJSON = new mysql2json(); と記述してあげると、jsonとして呼び出すには

$string = trim($objJSON->getJSON($result,$num));
echo $string; 

でもせっかくJSON作ったので、これを保存してあげます。あらかじめJSONがあれば、Mysqlに接続すらしないで、JSONからデータの呼び出しが出来ますもんね。AJAXベースで検索システムを作る時には最適です。
$objJSON = new mysql2json(); からの続きです。

$filepath = "json.txt"; // json保存用。パーミッションは666
$string = trim($objJSON->getJSON($result,$num)); // 書き込みたい文字列を変数に格納
$fp = fopen($filepath, "w"); // 新規書き込みモードで開く
@fwrite( $fp, $string, strlen($string) ); // ファイルへの書き込み
fclose($fp);
初夏のJavaScript祭 in サーキュレーションビル ForPro