2014年8月29日金曜日

PHP で SQLite3 からデータを取得して JSON を出力する

サーバーサイドの PHP で SQLite からデータを取得して、クライアントサイドで JSON としてリターンする例です。

サーバーサイド
SQLite3 データベースからデータを取得して各レコードを配列に追加し、配列を JSON として出力しています。

try {
    $db = new SQLite3('myDB.db');

    // 取得(SELECT)
    $result = $db->query('SELECT ID, Category, ItemName FROM BuyList');
    // 配列を初期化
    $ary = array();
    // 配列にデータベースの各行を追加
    while ($rows = $result->fetchArray()) {
        array_push($ary, $rows);
    }
    // 配列を JSON データとして出力
    echo json_encode($ary, JSON_UNESCAPED_UNICODE);
    $db->close();
} catch (Exception $e) {
    print 'DB接続でエラーが発生';
    print $e->getTraceAsString();
}

クライアントサイド
jQuery で JSON 形式を扱えるようにするために、parseJSON と JSON.stringify を組み合わせました。
なぜこれらを組み合わせないと有効な JSON 形式にならないかはイマイチ謎で、要調査です・・。

$(function() {
    $.ajax({
        type: "POST",
        url: "test.php",
        dataType : "json",
        error: function(e)
        {
            //debugger;
        },
        success: function(data){
            var dt = $.parseJSON(JSON.stringify(data));
            // JSON データを使ったロジックが続く
        }
    });
});

PHP 配列の追加には array_push を使いました。
http://php.net/manual/ja/function.array-push.php

0 件のコメント:

コメントを投稿