在PHP for循环中执行INSERT INTO

时间:2018-03-20 15:22:37

标签: php json mysqli

我正在尝试将多个记录插入到我的数据库中。在PHP循环中使用INSERT INTO sql语句。

    <?php

require 'connect-mysql.php';

$json = '[{"run_id":"1","timeS":"00:00:00","lng":"53.408709","lat":"-2.996161"},{"run_id":"1","timeS":"00:00:00","lng":"53.408709","lat":"-2.996161"},{"run_id":"1","timeS":"00:00:00","lng":"53.408709","lat":"-2.996161"},{"run_id":"1","timeS":"00:00:00","lng":"53.408709","lat":"-2.996161"}]';

$array = json_decode($json); // decode json

$size = count($array);

for ($x = 0; $x <= $size - 1; $x++) 
{
    $run = $array[$x]->run_id;
    $timeStamp = $array[$x]->timeS;
    $lng = $array[$x]->lng;
    $lat = $array[$x]->lat;

    //echo $array[$x]->exercise_name;
    $mysql_qry = "INSERT INTO run_gps (run_id, time, decimal_degrees_lng, decimal_degrees_lat) VALUES ('$run', '$timeStamp', '$lng', '$lat');";
    $result = mysqli_query($dbcon ,$mysql_qry);
    echo $mysql_qry;
}
?>

当我回显$mysql_qry时,它回应了我期望但实际上并未插入数据库的所有INSERT INTO语句。

我希望有人可以帮助我。

编辑

我已将我的代码更新为某人可以帮助我的内容,请参阅下文。

    <?php

require 'connect-mysql.php';

$json = $_POST['json'];

$array = json_decode($json);

$size = count($array);

for ($x = 0; $x <= $size - 1; $x++) 
{
    $id = $array[$x]->run_id;
    $timeStamp = $array[$x]->timeS;
    $lng = $array[$x]->lng;
    $lat = $array[$x]->lat;

    if($x>0)
    {
        $mysql_qry .= "INSERT INTO run_gps (run_id, time, decimal_degrees_lat, decimal_degrees_lng) VALUES ('".$id."', '".$timeStamp."', '".$lat."', '".$lng."');";
    }
    else
    {
        $mysql_qry = "INSERT INTO run_gps (run_id, time, decimal_degrees_lat, decimal_degrees_lng) VALUES ('".$id."', '".$timeStamp."', '".$lat."', '".$lng."');";
    }


    //$result[$x]=mysqli_query($dbcon ,$mysql_qry[$x]);
    //mysqli_multi_query($dbcon ,$mysql_qry[$x]);
    //echo $result[$x];     
}

if(mysqli_multi_query($dbcon, $mysql_qry))
{
    echo $mysql_qry;
}
else
{
    echo "fail";
}
?>

这只会将第一个INSERT INTO插入数据库。

0 个答案:

没有答案