我想将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'
)");
但是
PHP代码:
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";
结果为“ -1”。我该怎么办?
答案 0 :(得分:0)
插入查询中的值必须用单引号引起来。同样,数组中的键也应该用单引号引起来。
INSERT INTO TEST (
number,
lon,
lat
) VALUES (
'".$html['body']['items'][$i]['bizesid']."',
'".$html['body']['items'][$i]['lon']."',
'".$html['body']['items'][$i]['lat']."'
)");
答案 1 :(得分:0)
1。您当前的代码对SQL INJECTION
而言是开放的,因此请使用prepared statements
。
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);
}
}
重要说明:- 请使用 prepared statements
来防止自己受到 SQL注入