我有大约十个表单项要插入到MySQL数据库中,表单中的每个输入都有一个名称,也就是表行名。你可以在这里了解我想要做的事情:
foreach($_POST as $x=>$y) {
if(!empty($y)) {
$sql = "INSERT INTO db.table (`$x`) values ('$y');";
// execute
}
}
...我的问题是我需要让所有内容都进入相同的记录。现在,每个'INSERT'都被添加到一个新的记录中。是否有可能获得第一个'INSERT'的记录的id,然后从那里使用'Update'?或者有更好的方法来做到这一点吗?
由于
答案 0 :(得分:1)
检查此功能:mysqli::insert_id
您可以将第一个查询作为insert
执行,使用该函数获取生成的ID,然后执行update
个查询。
答案 1 :(得分:1)
首先,您应该对@andy注意到的MySQL注入做一些事情 说过你可以尝试这样的东西,它只需一次性添加所有值。 此时不应该真正需要更新。
$columns = '';
$values = '';
$sql = "INSERT INTO db.table (%s) values (%s);";
foreach($_POST as $x=>$y) {
if(!empty($y)) {
$columns .= $x.',';
$values .= $y.',';
}
}
$columns = substr($columns,0,strlen($columns)-1));
$values = substr($values,0,strlen($values)-1));
$sql = sprintf($sql, $columns, $values);
//execute