Mysql SQL-to-JSON将整型转换为字符串

Mysql SQL-to-JSON将整型转换为字符串,mysql,arrays,json,Mysql,Arrays,Json,我的PHP中有这个 $sql="select * from defaulttime"; $result = mysqli_query($db, $sql); while ($row = mysqli_fetch_array($result)){ $row_set[] = $row; } echo trim(json_encode($row_set)); 在我的SQL中,有些列是整数。但在JSON中,它显示为字符串。 有人能告诉我我做错了什么吗 当我运行PHP时,我得到以

我的PHP中有这个

$sql="select * from defaulttime";

$result = mysqli_query($db, $sql);

while ($row = mysqli_fetch_array($result)){
        $row_set[] = $row;


}
echo trim(json_encode($row_set));
在我的SQL中,有些列是整数。但在JSON中,它显示为字符串。 有人能告诉我我做错了什么吗

当我运行PHP时,我得到以下结果。(注意:小时和分钟应为整数)

我想让它把string显示为string,Int显示为Int

{"name":"Test","Hour": 6 ,"Minute":45}

您必须使用JSON\u NUMERIC\u CHECK选项才能获得数值

看这里:


您必须使用JSON\u NUMERIC\u CHECK选项才能获得数值

看这里:

谢谢大家

我通过使用以下代码使其工作:

$result = mysqli_query($db, $sql);

while ($row = mysqli_fetch_array($result)){
        $row_set[] = $row;


}

$json=json_encode($row_set,JSON_NUMERIC_CHECK);
echo $json;
谢谢大家

我通过使用以下代码使其工作:

$result = mysqli_query($db, $sql);

while ($row = mysqli_fetch_array($result)){
        $row_set[] = $row;


}

$json=json_encode($row_set,JSON_NUMERIC_CHECK);
echo $json;

PHP docs on:返回与获取的行相对应的字符串数组,如果resultset中没有更多行,则返回NULL。注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u query
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代的产物,当时引入了
mysqli
API,不应在新代码中使用。注意:尝试摆脱在一次性使用的变量中声明SQL语句的习惯。如果查询直接提供给函数,那么遵循代码就容易多了,而且不再有机会弄乱并发送
$sql3
而不是视觉上相似的
$sql8
。PHP文档打开:返回与获取的行相对应的字符串数组,如果resultset中没有更多行,则返回NULL。注意:
mysqli
的面向对象接口明显不那么冗长,使代码更易于阅读和审核,并且不容易与过时的
mysql\u查询
接口混淆。在你对程序性风格投入太多之前,值得换一种。示例:
$db=new mysqli(…)
$db->prepare(“…”)
过程接口是PHP 4时代的产物,当时引入了
mysqli
API,不应在新代码中使用。注意:尝试摆脱在一次性使用的变量中声明SQL语句的习惯。如果查询直接提供给函数,那么遵循代码就容易多了,而且不再有可能弄乱并发送
$sql3
而不是视觉上相似的
$sql8
$result = mysqli_query($db, $sql);

while ($row = mysqli_fetch_array($result)){
        $row_set[] = $row;


}

$json=json_encode($row_set,JSON_NUMERIC_CHECK);
echo $json;