如何在json_encode()
MySQL查询结果中使用该函数?我是否需要遍历行或者是否可以将其应用于整个结果对象?
$sth = mysqli_query("SELECT ..."); $rows = array(); while($r = mysqli_fetch_assoc($sth)) { $rows[] = $r; } print json_encode($rows);
函数json_encode
需要PHP> = 5.2和PHP-JSON包-如所提到的在这里
注意:mysql
自PHP 5.5.0起不推荐使用,请使用mysqli
扩展名http://php.net/manual/en/migration55.deprecated.php.
试试这个,这将正确创建你的对象
$result = mysql_query("SELECT ..."); $rows = array(); while($r = mysql_fetch_assoc($result)) { $rows['object_name'][] = $r; } print json_encode($rows);
http://www.php.net/mysql_query说" mysql_query()
返回资源".
http://www.php.net/json_encode表示它可以编码"除资源外"的任何值.
您需要迭代并在数组中收集数据库结果,然后json_encode
是数组.
谢谢,这对我帮助很大.我的代码:
$sqldata = mysql_query("SELECT * FROM `$table`"); $rows = array(); while($r = mysql_fetch_assoc($sqldata)) { $rows[] = $r; } echo json_encode($rows);
谢谢......我的回答是:
if ($result->num_rows > 0) { # code... $arr = []; $inc = 0; while ($row = $result->fetch_assoc()) { # code... $jsonArrayObject = (array('lat' => $row["lat"], 'lon' => $row["lon"], 'addr' => $row["address"])); $arr[$inc] = $jsonArrayObject; $inc++; } $json_array = json_encode($arr); echo $json_array; } else{ echo "0 results"; }
根据我的经验,在将数组中的根元素命名为某些内容之前,上述操作无效,在此之前我无法访问最终json中的任何内容.
$sth = mysql_query("SELECT ..."); $rows = array(); while($r = mysql_fetch_assoc($sth)) { $rows['root_name'] = $r; } print json_encode($rows);
这应该够了吧!
平价
下面的代码在这里工作正常!
我的简单解决办法是停止在数字值周围添加语音标记...
while($r = mysql_fetch_assoc($rs)){ while($elm=each($r)) { if(is_numeric($r[$elm["key"]])){ $r[$elm["key"]]=intval($r[$elm["key"]]); } } $rows[] = $r; }
抱歉,问题过了很久,但是:
$sql = 'SELECT CONCAT("[", GROUP_CONCAT(CONCAT("{username:'",username,"'"), CONCAT(",email:'",email),"'}")), "]") AS json FROM users;' $msl = mysql_query($sql) print($msl["json"]);
基本上就是:
"SELECT" Select the rows "CONCAT" Returns the string that results from concatenating (joining) all the arguments "GROUP_CONCAT" Returns a string with concatenated non-NULL value from a group