将foreach作为数组提交给MySQL

时间:2015-06-26 14:50:04

标签: php mysql arrays forms post

我需要根据表单中自动生成的列表将数据插入数据库。

所以我有这个列出了键和值,但我需要创建一个数组,然后我可以使用$ sql插入数据库。

foreach ($_POST as $key => $value) {
        if($value != "") {
            print $key.": ".$value . "<br>";
        }
}

那么我有这个for $ sql insert

$sql = "INSERT INTO FDPU ($key) VALUES ('$value')";
if ($conn->query($sql) === TRUE) {
echo $key.'='.$value.'New record created successfully'.'<br />';
} else {
echo "Error: " . $sql . "<br>" . $conn->error;
}

1 个答案:

答案 0 :(得分:1)

未经测试,但这样的事情应该这样做:

$keys = array();
$values = array();

foreach ($_POST as $key => $value) {
        if($value != "") {
            $keys[] = $key;
            $values[] = "'" . $value . "'";
        }
}

$sql = "INSERT INTO FDPU (" . implode(',', $keys) . ") VALUES (" . implode(',', $values) . ")";

它存储非空变量的键和值,然后使用非常方便的函数implode将它们放在一起。