note 94629 added to function.json-encode

From: Date: Sun, 15 Nov 2009 16:45:12 +0000
Subject: note 94629 added to function.json-encode
Groups: php.notes 
Request: Send a blank email to php-notes+get-162936@lists.php.net to get a copy of this message
I had trouble putting the results of mysql_fetch_assoc() through json_encode: numbers being returned from the query were being quoted in the JSON output (i.e., they were being treated as strings). In order to fix this, it is necessary to explicitly cast each element of the array before json_encode() is called. The following code uses metadata from a MySQL query result to do this casting. <?php $mysql = mysql_connect('localhost', 'user', 'password'); mysql_select_db('my_db'); $query = 'select * from my_table'; $res = mysql_query($query); // iterate over every row while ($row = mysql_fetch_assoc($res)) { // for every field in the result.. for ($i=0; $i < mysql_num_fields($res); $i++) { $info = mysql_fetch_field($res, $i); $type = $info->type; // cast for real if ($type == 'real') $row[$info->name] = doubleval($row[$info->name]); // cast for int if ($type == 'int') $row[$info->name] = intval($row[$info->name]); } $rows[] = $row; } // JSON-ify all rows together as one big array echo json_encode($rows); mysql_close($mysql); ?> ---- Server IP: 193.95.141.37 Probable Submitter: 87.198.20.148 ---- Manual Page -- http://www.php.net/manual/en/function.json-encode.php Edit -- https://master.php.net/note/edit/94629 Del: integrated -- https://master.php.net/note/delete/94629/integrated Del: useless -- https://master.php.net/note/delete/94629/useless Del: bad code -- https://master.php.net/note/delete/94629/bad+code Del: spam -- https://master.php.net/note/delete/94629/spam Del: non-english -- https://master.php.net/note/delete/94629/non-english Del: in docs -- https://master.php.net/note/delete/94629/in+docs Del: other reasons-- https://master.php.net/note/delete/94629 Reject -- https://master.php.net/note/reject/94629 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#162936) next »