【问题标题】:Iterate through arrays and input into database遍历数组并输入数据库
【发布时间】:2015-04-15 12:31:34
【问题描述】:

我有一个表单,它捕获数据并在名为“table”的数组中发布,因此表、列和元组是链接的。 我现在正在尝试遍历它们并将它们分成单独的字符串, "$table" = 名称 "$columns" = 列 "$columnData" = 数据

当我对数据进行 var_dump 时,它看起来像:-

array (size=2)
0 => 
array (size=3)
  'name' => string 'quote' (length=5)
  'columns' => 
    array (size=3)
      0 => string 'qid' (length=3)
      1 => string 'item' (length=4)
      2 => string 'price' (length=5)
   'data' => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'ball' (length=4)
      2 => string '200' (length=3)
 1 => 
array (size=3)
  'name' => string 'rfq' (length=3)
  'columns' => 
    array (size=2)
      0 => string 'id' (length=2)
      1 => string 'item' (length=4)
  'data' => 
    array (size=2)
      0 => string '1' (length=1)
      1 => string 'batt' (length=4)

看起来格式正确,尽管当我尝试插入数据库时​​它没有插入,但插入语句中的 $columns 变量有些东西不起作用。 虽然我不确定我是否正确地遍历数据。

 $AllData = $_POST["table"];
  //  var_dump($AllData)


foreach ($AllData as $sigleData) {

    $table = $sigleData['name'];
    $columns = implode(" ", $sigleData['columns']);
    $columnData = implode(" ", $sigleData['data']);

     $sqlQuery = "INSERT INTO " . $table . " ( " . $columns . ") VALUES( '" . $columnData . "')";

if ($dbConnectionT->query($sqlQuery) == TRUE) {
    echo "database updated";
    echo "</br>";
}
}

所以表报价有 qid、item 和 price 列。 我试图正确插入的值为 1、ball 和 200。

请注意,我了解这里的数据库违规,但试图让编程示例正常工作,

如果需要上一页,请评论。提前致谢。

【问题讨论】:

  • echo $sqlQuery 看看你得到了什么。
  • 您不需要使用逗号作为分隔符而不是空格吗?
  • 使用逗号(,)作为分隔符

标签: php mysql sql


【解决方案1】:

试试 -

foreach ($AllData as $sigleData) {

      $table = $sigleData['name'];
      $columns = implode(", ", $sigleData['columns']);
      $columnData = implode(" ',' ", $sigleData['data']);

      $sqlQuery = "INSERT INTO " . $table . " ( " . $columns . ") VALUES( '" . $columnData . "')";

      if ($dbConnectionT->query($sqlQuery) == TRUE) {
        echo "database updated";
        echo "</br>";
      }
}

【讨论】:

  • Billiant,这行得通,尽管数据库现在插入了 3 次值,但所有迭代:- 所以 1, ball, 200 插入了 3 次引用。请问这个怎么插入一次?
  • 在更新表之前,我将如何检查以确保数据库中存在表?谢谢
【解决方案2】:

在您的插入查询中,您正在使用单个 ' 为两个值构建 VALUE 部分...只需使用 "', '" 更改 implode 参数

【讨论】:

    猜你喜欢
    • 2015-11-14
    • 2016-08-12
    • 2019-12-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-07
    • 1970-01-01
    相关资源
    最近更新 更多