ID(int)とName(string)の2つの列を含むデータベース(MyTable)からJSONオブジェクトを返したいです。
以下のスクリプトは、次のようなJSONを生成します。
[{"ID":"0","Name":"John"},{"ID":"1","Name":"Doe"}]
IDが文字列として返されることがわかります。IDが整数として返されるようにするにはどうすればよいですか?
[{"ID":0,"Name":"John"},{"ID":1,"Name":"Doe"}]
次のような一般的なクエリを使用したいので、ODBCから結果配列を読み取って解析したくありません。
SELECT * FROM TableXXX
これが私のスクリプトです:
//connection
$connstr = "Driver={SQL Server Native Client 10.0};Server=" . $this->server . ";Database=" . $this->database . ";";
$conn=odbc_connect($connstr, $this->user, $this->password);
if (!$conn) {exit("Connection Failed: " . $conn);}
//execute sql
$rs=odbc_exec($conn,"SELECT ID, Name FROM MyTable");
if (!$rs) {exit("Error in SQL");}
//retreive data into array
$data = array();
$i=0;
while( $row = odbc_fetch_array($rs) ) {
$data[$i] = $row;
$i++;
}
odbc_close($conn);
//output as json string
echo json_encode($data);