Ich möchte ein JSON-Objekt aus einer Datenbank (MyTable) zurückgeben, die zwei Spalten enthält - ID (int) und Name (Zeichenfolge).PHP-ODBC-Verbindung, die korrekte Werttypen zurückgibt
Das Skript unten erzeugt eine JSON wie:
[{"ID":"0","Name":"John"},{"ID":"1","Name":"Doe"}]
Sie können sehen, dass die ID als String zurückgegeben. Wie kann ich es in einer Weise zu erreichen, die eine ID als ganze Zahl zurückgegeben werden würde:
[{"ID":0,"Name":"John"},{"ID":1,"Name":"Doe"}]
Ich will nicht das Ergebnis Array aus der ODBC lesen und zu analysieren, da ich wie generische Abfragen verwenden möchten:
SELECT * FROM TableXXX
Hier mein Skript ist:
//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);