我如何在php的sql语句中插入多行。似乎该数组不起作用。我的一些变量位于数组中,而某些则在循环中固定。

$sql = array();
    for ($i=0; $i< count($datesArray); $i++){
        array_push($sql, "INSERT INTO courseSchedule (isc, date, startTime, endTime, sessionTitle, sessionDescription) VALUES ('$isc', '$datesArray[$i]', '$TimesArrayStart[$i]', '$TimesArrayEnd[$i]', '$TitlesArray[$i]', '$DescriptionsArray[$i]')");
    }
    $query = mysqli_query($db_conx, $sql);


我已经更改了类似这样的代码,但是仍然没有任何输入。

$sql = array();
for ($i=0; $i< count($datesArray); $i++){
    $sqlarray[] = '('.$isc.', '.$datesArray[$i].', '.$TimesArrayStart[$i].', '.$TimesArrayEnd[$i].', '.$TitlesArray[$i].', '.$DescriptionsArray[$i].')';
}
$sql = 'INSERT INTO courseSchedule (isc, date, startTime, endTime, sessionTitle, sessionDescription) VALUES'.implode(',', $sqlarray);
$query = mysqli_query($db_conx, $sql);


使用mysqli_multi_query也不起作用:

 $sql   = "";
$count = count($datesArray);
for ($i = 0; $i < $count; $i++){
    $sql .= "INSERT INTO courseSchedule (isc, date, startTime, endTime, sessionTitle, sessionDescription) VALUES ('$isc', '$datesArray[$i]', '$TimesArrayStart[$i]', '$TimesArrayEnd[$i]', '$TitlesArray[$i]', '$DescriptionsArray[$i]')";
}
echo($sql);
$query = mysqli_multi_query($db_conx, $sql);

最佳答案

遵循这些原则的东西应该起作用-实际上,这应该起作用。

未经测试,但可以在我的办公桌上以隐身模式快速写入。

$sql   = 'INSERT INTO courseSchedule (isc, date, startTime, endTime, sessionTitle, sessionDescription) VALUES ';
$count = count($datesArray);
for ($i = 0; $i < $count); $i++)
{
    $sql .= "('$isc', '$datesArray[$i]', '$TimesArrayStart[$i]', '$TimesArrayEnd[$i]', '$TitlesArray[$i]', '$DescriptionsArray[$i]')" . (($i + 1) == $count ? '' : ',');
}
$query = mysqli_query($db_conx, $sql);

10-06 07:20