mysql2json.classでわずか3分でmysqlをjsonに変換そして保存!
PHP×Mysql×jsonそして保存をわずか3分で!
Ajaxベースで検索を行うならjson。変換して、保存してしまえばデータベースへのクエリが減り、高速サクサクサイトが作れてしまいます。
そんなわけでPHP×Mysql×jsonそして保存をわずか3分で実装したいと思います。
mysql2json.class
PHPからmysqlのデータをjson化するわけですが、とっても便利なクラスがあるので紹介します。
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);