php foreach语句将数据插入到只插入最后一行的sql中

时间:2016-10-18 14:21:27

标签: php sql arrays foreach

我正在尝试在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); 
}

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

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

2 个答案:

答案 0 :(得分:0)

试试这个, 使用您的查询,使用单个SQL INSERT语句插入多行 像这样的东西:

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

代码

$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); 

答案 1 :(得分:0)

现在,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);