【问题标题】:How to insert $_POST from Java如何从 Java 插入 $_POST
【发布时间】:2014-05-30 18:09:23
【问题描述】:

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

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

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

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

【问题讨论】:

  • Java 在哪里发挥作用?
  • $con是什么对象?
  • @Thilo Im 从 Java 发布值
  • @jsalonen 我已将 con 函数放入编辑中

标签: java php sql


【解决方案1】:

值进入不同的行,因为您对每个变量执行一次插入操作。

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

【讨论】:

  • 我想这样做,但我该怎么做呢?
【解决方案2】:

最终,您为每个值执行一个插入命令,而您应该为每个键值对执行一个插入命令。

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

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

【讨论】:

    【解决方案3】:

    插入$table ($row) 值('$value')

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

    如果你有一个列名列表,你可以这样做

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

    你可以给它数组

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

    【讨论】:

      猜你喜欢
      • 2013-09-10
      • 1970-01-01
      • 2011-07-17
      • 2013-10-17
      • 1970-01-01
      • 1970-01-01
      • 2016-12-18
      • 2014-12-03
      • 2019-09-11
      相关资源
      最近更新 更多