在php中将多行插入sql数据库

时间:2014-07-01 15:32:34

标签: php mysql sql sql-server

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

3 个答案:

答案 0 :(得分:2)

连接查询并使用mysqli_multi_query()。请注意,您需要使用;

结束SQL语句

看看http://php.net/manual/en/mysqli.multi-query.php

或者,对于INSERT,您可以像这样构建查询:

INSERT INTO example
  (example_id, name, value, other_value)
VALUES
  (100, 'Name 1', 'Value 1', 'Other 1'),
  (101, 'Name 2', 'Value 2', 'Other 2'),
  (102, 'Name 3', 'Value 3', 'Other 3'),
  (103, 'Name 4', 'Value 4', 'Other 4');

答案 1 :(得分:0)

通过消除过程并且因为你没有向我们展示你的表,因为你的PHP语法是正确的并且你的INSERT是正确的,很明显你没有每个值的值(不能是NULL)在你的INSERT中。也许你应该在for之前回复这些值来验证。祝你好运。

答案 2 :(得分:0)

这些方面的东西应该有效 - 事实上,这应该有效。

未经测试,但很快就以隐身模式从我的办公桌上写下来了。

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