PHP将变量放入mysql
我想把json的变量放到mysql中。我该怎么办 json代码由API输出 json视图:PHP将变量放入mysql,php,mysql,api,Php,Mysql,Api,我想把json的变量放到mysql中。我该怎么办 json代码由API输出 json视图: Array( [body] => Array ( [items] => Array ( [0] => Array ( [bizesId] => 333333
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我也添加了一个适当的注释以及有用的链接。