PHP foreach语句插入数据到SQL中,只插入最后一行


php foreach statement to insert data into sql only inserting last line

我试图在PHP中使用foreach语句从数组插入数据到SQL数据库。数组可以包含40到80行数据。我使用下面的代码:

foreach ($racelap as $lap){
     $sql = "insert into laps (RaceID,Lap,time,Temp,Humidity) ";
     $sql .= "values ($RaceID,'$lap[0]','$lap[1]',$lap[2],'$lap[3]')";
    mysql_query($sql); 
}

代码没有给我一个错误,但它只添加最后一行数据,而忽略所有其他数据。

解决方案可能很简单,但不幸的是我自己找不到。

试试这个,使用单个SQL insert语句将查询用于插入多行像这样:

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

CODE:

$sql = "insert into laps (RaceID,Lap,time,Temp,Humidity) values  ";
foreach ($racelap as $lap){
     $sql .= "($RaceID,'$lap[0]','$lap[1]',$lap[2],'$lap[3]') ,";
}
$sql =rtrim($sql,",");
mysql_query($sql); 

现在,不支持使用mysql。你可以用mysqli。尝试使用mysql波纹管代码:

$sql = "insert into laps (RaceID,Lap,time,Temp,Humidity) values ";
foreach ($racelap as $lap){
    $sql .= "($RaceID,'$lap[0]','$lap[1]',$lap[2],'$lap[3]'), "; 
    if(!next($racelap)) {
        $sql .= "($RaceID,'$lap[0]','$lap[1]',$lap[2],'$lap[3]')"; 
    }
}
mysql_query($sql);