如何从Java插入$ _POST

时间:2014-05-30 09:53:20

标签: java php sql

我正在尝试将$ _POST数组插入到mysql数据库中。 foreach可以工作,但并非所有值都插入到同一行中,如下图所示。

Img1

这是我用来将数组插入数据库的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;
        }
    }

我想从帖子中收集变量,然后我想将它们放在表格的同一行的数据库中。

如何获取同一行的值? 提前谢谢

3 个答案:

答案 0 :(得分:4)

值会进入不同的行,因为每个变量都会进行一次插入。

您可能希望从$ _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);

答案 1 :(得分:0)

最终,当你为每个键和值对做一个时,你正在为每个值做一个插入命令。

您可以尝试的一个选项是将$ _POST数组作为JSON数据插入。

<?php
$db = mysqli_connect(...);
foreach($_POST as $key => $value) {
    mysqli_query($db, "INSERT into `table` VALUES ($key, $value)");
}

答案 2 :(得分:0)

  

INSERT INTO $table$row)VALUES('$ value')

通常(如果这不是您正在编写的phpMySqlAdmin),您的应用程序知道哪些列可用于给定的表,并且您完全需要验证$ row的值,否则它是SQL注入的可怕潜力。

如果您有列名列表,则可以

INSERT INTO test (Col1, Col2, Col3) VALUES (?, ?, ?)

你可以给它数组

$_POST["COL1"], $_POST["COL2"], $_POST["COL3"]