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