Skip navigation

MySQL→JSON変換(mysql2json.class.php)

Ajaxの盛り上がりでJavascriptを多く使うようになってきた。
Javascriptはクライアントスクリプトなので、DBとの連携(データやりとり)をどうしようかと、悩むこともある。

例えば、Google Maps APIで大量のマーカーをプロットしたいときに、DBにマーカー情報を登録させておいて、そこから、Javascriptでデータを受け取りマーカープロットさせたい!など、JavascriptとDBを連携させたい時がある。

JavascriptとDBの連携には、AjaSQLやPEARとか、色々なクラス(ライブラリ)があるので、みんな何を使っているのかは???だが、僕は、mysql2json.class.phpを使っている。
mysql2json.class.phpは、その名のとおり、MySQLからJSON形式に変換してくれるクラス。
以下からダウンロードすることができます。
※ダウンロードにはユーザー登録が必要でした(確か・・・)

mysql2json.class.php
http://www.phpclasses.org/browse/file/14803.html

ちなみにJSONとは、
引用:
JSON (JavaScript Object Notation) は、軽量なデータ交換フォーマットです。それは、人間にとって読みやすく、書きやすく、また、機械にとっても解析と生成の容易な形式です。 JavaScript(ECMAScript)にもとづくサブセットです。
(【Ajax】JSON by JavaScript++かも日記)

このmysql2json.class.phpをインクルードさせて以下のようにPHPで記述すれば、たった数行で簡単に、MySQLからJSON形式に変換してくれます。

PHPの記述:

PHP:
  1. <? php
  2.  
  3. include("mysql2json.class.php");
  4.  
  5. //MySQL接続設定
  6. define("DBSV", "localhost");
  7. define("DBNAME", "testdb");
  8. define("DBUSER", "testuser");
  9. define("DBPASS", "pass");
  10.  
  11. //MySQL接続
  12. $conn = mysql_connect(DBSV, DBUSER, DBPASS) or die();
  13. mysql_query("SET NAMES utf8",$conn);
  14. mysql_select_db(DBNAME, $conn);
  15.  
  16. //SQLクエリの発行
  17. $num=0;
  18. $sql = "SELECT * FROM test";
  19. $result = mysql_query($sql, $conn);
  20.  
  21. // クラスを呼び出して出力
  22. $objJSON=new mysql2json();
  23. print(trim($objJSON->getJSON($result,$num)));
  24.  
  25. ?>

出力結果(JSON)は、以下な感じです。

HTML:
  1. {
  2. "data": [
  3. {
  4. "gid" : "1",
  5. "lat" : "34.678482",
  6. "lng" : "137.715158"
  7. },
  8. {
  9. "gid" : "2",
  10. "lat" : "34.708146",
  11. "lng" : "137.746757"
  12. },
  13. {
  14. "gid" : "3",
  15. "lat" : "34.664578",
  16. "lng" : "137.681942"
  17. },
  18. .
  19. .
  20. .
  21. {
  22. "gid" : "250",
  23. "lat" : "34.667824",
  24. "lng" : "137.771654"
  25. }
  26. ]
  27. }

とっても簡単ですね。

Tags: , ,