【问题标题】:how to insert array values into the column of a database table?如何将数组值插入数据库表的列中?
【发布时间】:2012-08-27 11:40:56
【问题描述】:

我有一个包含红色、绿色和黄色三个值的数组。现在我应该

insert red into column3 row1
insert green into column3 row2
insert yellow into column3 row3

我试着写代码怎么办

foreach ($output as $value)
{
    echo ($value.'<br>');
    $tstring = implode(',' , $output);
    $insert_col= "UPDATE INTO `5` (B) VALUES ('$tstring')";
    $insert_result = mysql_query($insert_col);
    if ($insert_result)
    { 
        echo ("RECORDED!")|
        exit();
    }
}

但它不起作用。它正在使用值 R 向现有表填充额外的行。

请帮忙!

【问题讨论】:

  • 在尝试查询之前连接到您的数据库怎么样?另外,不要使用mysql_*,使用PDOmysqli_*
  • 这不是$insert_col= "UPDATE INTO `5` (B) VALUES ('$tstring')";有任何意义。我怀疑您的表名是“5”,您还需要通过WHERE 子句告诉数据库要更新哪一列。
  • 我之前做了连接部分我没有在这里提到那个代码,因为代码会很长。
  • 我将列名指定为 (B).. 对不起,我是新手,对此不太了解...好吧,我会尝试使用“WHERE”谢谢
  • 我有一个问题:为什么会有内爆?如果我理解了,你想用数组中的一个值更新每一行,而不是用数组的所有值。

标签: php sql database arrays


【解决方案1】:

如果我没记错的话,UPDATE 语句应该有一个 WHERE 子句。

喜欢:

 UPDATE table SET column_name='value' WHERE condition;

你可以找到例子at w3schools

至于插入正确的值:

foreach($output as $value){
     $tstring = $value;
     $insert_col = "UPDATE `5` SET B='" . $tstring . "' WHERE insert a condition here";
     $insert_result = mysql_query($insert_col);

    if ($insert_result) {
         echo ("RECORDED!") |
    }
}

您不想将所有数组插入一行,这意味着内爆是无用的。

我再说一遍,你需要一个 WHERE 子句。没有它,您将使用相同的值更新所有行。

【讨论】:

  • 好地方。 WHERE 是可选的,但是,如果没有它,所有行都将设置为新值,这很少会发生。
  • 感谢我厌倦了使用以下命令,但它不起作用:( $insert_col= "UPDATE 5 SET column_name='B' WHERE VALUES ('$tstring')";
  • 不不,代码应该是:“UPDATE 5 SET B='".$tstring."' WHERE id=1" 例如。 id=1 是一个例子,我不知道你的表。
  • 它有效...!但我不知道为什么它在所有字段中填充值“R”:(我哪里出错了......!!:(
  • ups 我删除了我的评论,因为您确实回答了上述问题。好吧,我不明白为什么它会记录你的字符串的第一个字母,你能告诉我们你的新查询吗(以防万一有遗漏)?
【解决方案2】:

你有几个错误。在第一次成功插入后,您似乎忘记了连接到数据库以及 exit()。因此,如果数组中有更多元素,则不会存储这些元素。如果失败,您可能还想显示 mysql_error(); 的值

【讨论】:

    猜你喜欢
    • 2011-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-11-26
    • 2015-06-18
    • 1970-01-01
    • 2015-03-29
    • 1970-01-01
    相关资源
    最近更新 更多