我如何在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);