-1

我有大约十个表单项要插入到 MySQL 数据库中,表单中的每个输入都有一个名称,该名称也是表行名称。你可以在这里了解我想要做什么:

foreach($_POST as $x=>$y) {

    if(!empty($y)) {

            $sql = "INSERT INTO db.table (`$x`) values ('$y');";
            // execute
        }
}

...我的问题是我需要将所有内容都放入同一个记录中。现在每个“插入”都被添加到一个新记录中。是否可以获取第一个“INSERT”记录的 ID,然后从那里使用“Update”?或者有比这更好的方法吗?

谢谢

4

2 回答 2

1

检查此函数:mysqli::insert_id
您可以将第一个查询作为 执行insert,使用该函数获取生成的 id,然后执行update查询。

于 2013-10-14T14:51:55.590 回答
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
于 2013-10-14T15:03:27.227 回答