從 database 撈出來的資料要轉成 JSON 格式, 就需要用到 json_encode, 但在 PHP 官網 說明 json_encode 可轉任何型態的變數值 -- 除了 資料來源(resource, 以下稱 resource).
一般人較常用的方式是將 resource 取出存入陣列中, 如下:
$cSQL = "SELECT * FROM cust"; $rs = pg_query($conn, $cSQL); $recnt = pg_num_rows($rs); $table = array(); for($x=0;$x<$recnt;$x++) { array_push($table, pg_fetch_array($rs)); } $jsonobj = json_encode($table); echo 'json_table format --> '.$jsonobj;
而由於陣列內的資料會包含了陣列索引值和陣列元素名稱, 故轉為 json 格式時, 等同於一筆記錄同時存放了 2 次, 故個人不建議使用陣列的方式, 改用物件的方式, 如下:
$rs = pg_query($conn, $cSQL); $recnt = pg_num_rows($rs); $obj = array(); for($x=0;$x<$recnt;$x++) { array_push($obj, pg_fetch_object($rs)); } $jsonobj = json_encode($obj); echo 'json_object format --> '.$jsonobj;
沒有留言:
張貼留言