我正在尝试将一个$_POST数组插入到mysql数据库中。foreach可以工作,但并不是所有的值都插入在同一行中,就像您在下面的图像上看到的那样。

这是我用来将数组插入到数据库中的前端:
if($_POST)
{
// con->insert is my mysql function to insert the values
foreach ($_POST as $key => $value) {
if($con->insert('test',$key, $value)==true)
{
echo 'Het werkt!!!';
}
}
}编辑这是con函数
public function insert($table,$row,$value) {
$query = mysqli_query($this->connect, "INSERT INTO `$table` (`$row`) VALUES ('$value')");
if ($query == true)
{
return true;
}
else{
return false;
}
}我想从post中收集变量,然后将它们放在表的同一行的数据库中。
如何获得同一行的值?提前感谢
发布于 2014-05-30 10:03:24
这些值进入不同的行,因为每个变量执行一个插入操作。
您可能希望从$_POST收集所有变量,并在一个插入中将它们添加到数据库中。
首先,修改插入子句如下:
public function insert_multi($table, $items) {
$query = mysqli_query($this->connect,
"INSERT INTO `$table` (`firstKeyName`, `secondKeyName`) ".
"VALUES ('".$items['firstKeyName']."', '".$items['secondKeyName']."')");
if ($query == true)
{
return true;
}
else{
return false;
}
}然后在所有参数中只调用一次:
$con->insert_multi('test', $_POST);发布于 2014-05-30 10:06:08
最终,您将对每个值执行一个insert命令,而应该对每个键和值对执行一个insert命令。
您可以尝试的一个选项是将$_POST数组作为JSON数据插入。
<?php
$db = mysqli_connect(...);
foreach($_POST as $key => $value) {
mysqli_query($db, "INSERT into `table` VALUES ($key, $value)");
}发布于 2014-05-30 10:09:23
插入
$table($row)值(“$value”)
通常情况下(如果这不是您正在编写的phpMySqlAdmin ),您的应用程序知道给定表的哪些列可用,并且您完全需要验证$row的值,否则这对于SQL来说是一个可怕的潜力。
如果你有一个列名的列表,你可以
INSERT INTO test (Col1, Col2, Col3) VALUES (?, ?, ?)你可以给它数组
$_POST["COL1"], $_POST["COL2"], $_POST["COL3"]https://stackoverflow.com/questions/23951696
复制相似问题