Php 将数据从JSON文件加载到MYSQL数据库
我试图存储mysql数据库中JSON数据的两个字段。首先,我使用以下方法为我想要的数据创建PHP数组:Php 将数据从JSON文件加载到MYSQL数据库,php,mysql,json,Php,Mysql,Json,我试图存储mysql数据库中JSON数据的两个字段。首先,我使用以下方法为我想要的数据创建PHP数组: $o = file_get_contents("vixData.json"); $o = json_decode($o); $date = []; $close = []; $set = $o->dataset->data; foreach($set as $pos) { array_push($date,$pos[0]); array_push($close,$pos[4])
$o = file_get_contents("vixData.json");
$o = json_decode($o);
$date = [];
$close = [];
$set = $o->dataset->data;
foreach($set as $pos)
{
array_push($date,$pos[0]);
array_push($close,$pos[4]);
}
很好。现在,我正在尝试修改关于通过php数组插入多行的问题。首先,我将阵列内爆:
$date = implode(",", $date);
$close = implode(",", $close);
然后尝试使用以下命令插入数据库:
$sql = "INSERT INTO vix (date,close) VALUES (".$date.",".$close.")";
if (mysqli_multi_query($dbc, $sql)) {
echo "VIX Load Successful";
} else {
echo "VIX Load Error";
}
我看到我的加载错误。没有数据库连接问题,因为我的脚本前面使用了$dbc。尝试调试;我的SQL INSERT语句有效吗?有人能看到这个问题吗
您好,快速看一下,您的值似乎没有在SQL中用引号括起来。试试这个:
$sql = "INSERT INTO vix (date,close) VALUES ('".$date."','".$close."')";
删除concat操作符(.)将导致相同的结果。代码中有两个问题
mysqli\u multi\u query()
INSERT
语句,如下所示:
$o = file_get_contents("vixData.json");
$o = json_decode($o);
$date = [];
$close = [];
$set = $o->dataset->data;
foreach($set as $pos)
{
array_push($date,$pos[0]);
array_push($close,$pos[4]);
}
$sql = "";
foreach ($date as $key => $value) {
$sql .= "INSERT INTO vix (date,close) VALUES ('".$value."','".$close[$key]."'); ";
}
if (mysqli_multi_query($dbc, $sql)) {
echo "VIX Load Successful";
} else {
echo "VIX Load Error";
}
删除包装值的双引号和concatator
$sql = "INSERT INTO vix (date,close) VALUES ('$date','$close')";
去除查询中变量旁边的运算符应使用或不使用。接线员对吗?太棒了!值得注意的是,如果$date或$close有撇号,您的查询可能也会中断。确保转义您的输入。@Marinus:您错过了多重查询。。但是很好的回答。。。赢得我的选票。