PHP将变量放入mysql

PHP将变量放入mysql,php,mysql,api,Php,Mysql,Api,我想把json的变量放到mysql中。我该怎么办 json代码由API输出 json视图: Array( [body] => Array ( [items] => Array ( [0] => Array ( [bizesId] => 333333

我想把json的变量放到mysql中。我该怎么办

json代码由API输出

json视图:

Array(
    [body] => Array
        (
            [items] => Array
                (
                    [0] => Array
                        (
                            [bizesId] => 333333
                            [lon] => 00.000000
                            [lat] => 00.000000
                        )

                )

)
如果您输入代码,您可以看到“1”被输出

PHP代码:

$result = mysqli_query($con, "
INSERT INTO TEST (
    num,
    lon,
    lat
) VALUES (
  '5',
  'ddd',
  'fff'
)");
for ($i=0; $i<=5; $i++) {

  $result = mysqli_query($con, "
     INSERT INTO TEST (
         number,
         lon,
         lat
     ) VALUES (
         $html[body][items][$i][bizesid],
         $html[body][items][$i][lon],
         $html[body][items][$i][lat]
     )");
}

     if($result)
       echo "1";
     else
       echo "-1";
但是,

PHP代码:

$result = mysqli_query($con, "
INSERT INTO TEST (
    num,
    lon,
    lat
) VALUES (
  '5',
  'ddd',
  'fff'
)");
for ($i=0; $i<=5; $i++) {

  $result = mysqli_query($con, "
     INSERT INTO TEST (
         number,
         lon,
         lat
     ) VALUES (
         $html[body][items][$i][bizesid],
         $html[body][items][$i][lon],
         $html[body][items][$i][lat]
     )");
}

     if($result)
       echo "1";
     else
       echo "-1";

for($i=0;$i插入查询中的值必须在单引号中。数组中的键也应该在单引号中

INSERT INTO TEST (
     number,
     lon,
     lat
 ) VALUES (
     '".$html['body']['items'][$i]['bizesid']."',
     '".$html['body']['items'][$i]['lon']."',
     '".$html['body']['items'][$i]['lat']."'
 )");

1.您当前的代码对
SQL注入
非常开放,因此请使用
准备好的语句

2.对于当前解决方案,请使用
foreach()
并修改查询代码,以及检查是否执行了查询

foreach($html['body']['items'] as $arr){
    if(mysqli_query($con, "INSERT INTO TEST (`number`,`lon`,`lat`) VALUES ('". $arr['bizesid'] ."','". $arr['lon'] ."','". $arr['lat'] ."')")){
        echo "1";
    }else{
        echo mysqli_error($con);
    }
}
重要提示:-使用
准备好的语句
防止自己SQL注入


这是因为插入未发生。您是否检查了表?是否插入了数据?
$html[body][items][$i][bizesid]
将不会解析为实际值。一些错误检查或参数绑定会有所帮助。将值设置为5没有特殊原因。我将5设置为测试。输入“html”将导致错误。如果将“html”更改为“result\u json”,则“-1”是输出。不要在生产中使用此答案中的代码,始终使用准备好的语句。@KIKOSoftware我也添加了一个适当的注释以及有用的链接。