【发布时间】:2014-01-14 03:42:22
【问题描述】:
我有一个名为“问题”的数组,我正在尝试使用 foreach 将其插入到 mysql 中。数组如下所示:
Array
(
[0] => Array
(
[booking_id] => 936
[question_id] => a
[value] => 4
)
[1] => Array
(
[booking_id] => 936
[question_id] => b
[value] => 3
)
[2] => Array
(
[booking_id] => 936
[question_id] => c
[value] => 2
)
[3] => Array
(
[booking_id] => 936
[question_id] => d
[value] => 1
)
)
FOREACH 看起来像这样:
$sql = array();
foreach( $_POST['questions'] as $row ) {
$sql[] = '("'.$row['booking_id'].'", "'.$row['question_id'].'", '.$row['value'].')';
}
mysql_query('INSERT INTO table (booking_id, question_id, value) VALUES '.implode(',', $sql));
foreach 只是将数组中的第一项插入到表中,而不是循环遍历整个数组。
任何想法我哪里出错了?
【问题讨论】:
-
您确定 $_POST 包含您认为的内容吗?
-
print_r($_POST['questions']);给出上述数组
-
所有 booking_id 都是 936 ..?
-
如果
booking_id是您的主键并且不能有重复项,并且每条记录都有id=936,那么这就是您的问题。尝试在mysql_query()语句的末尾添加 ` or die(mysql_error())`。 -
发现了问题 - 它是主键。显然不是故意的。谢谢。