【发布时间】:2014-06-21 21:32:46
【问题描述】:
我在向数据库中插入多条记录时遇到问题
HTML
<input type="input" name="row[][name]">
<input type="input" name="row[][surname]">
<input type="input" name="row[][name]">
<input type="input" name="row[][surname]">
PHP
$returnedData = $_POST['row'];
$sql = array();
foreach( $returnedData as $row ) {
$sql[] = '("'.mysql_real_escape_string($row['name']).'", '.mysql_real_escape_string($row['surname']).')';
}
mysql_query('INSERT INTO tableName (name, surname) VALUES '.implode(',', $sql));
但错误是它打开 4 行,而我的意思是它为每个输入打开一个新行。
如何插入两条记录?
新信息
当我使用 foreach 写入发布的值时,我可以正确地看到这些值,问题是我找不到插入到我的表中的解决方案
foreach($returnedData as $data) {
echo '<pre>';
echo $data['name'];
echo $data['surName'];
}
【问题讨论】:
-
首先查看
$returnedData,然后决定如何迭代它。如果你对$sql做同样的事情而不是直接运行查询,你可以更快地找到。 -
问题不在于你是否可以foreach和array,而是如何你foreach它。所以问题不是在这里插入,而是在插入之前。
-
我给您留下了答案,让您可以更好地了解变量,并为您提供了一个在线示例,可以更好地展示它的工作原理。
-
只是我的意见,我很想使用“name[]”和“surname[]”的名称,而不是您正在创建的多维数组。要查看它们,只需执行以下操作:var_dump($_POST)。如果您确实想将它们放在一个条目中,那么我认为 'row[name][]' 会更容易使用。