【问题标题】:Insert multiple rows into database (PDO) [Items separated by commas]将多行插入数据库 (PDO) [项目以逗号分隔]
【发布时间】:2018-07-20 15:53:58
【问题描述】:

我正在编写一个简单的 Web 应用程序,用户可以在其中将数据输入到 textarea 输入字段中,然后将这些数据放入数据库中。

IE: 第 1 项、第 2 项、第 3 项、第 4 项、第 5 项、第 6 项

显然,文本区域将是用户输入的任何内容。 我需要所有项目,输入到我的数据库中,但输入到它们自己的行中。我已经看到很多网站都在做类似的事情,您将一堆信息输入到文本区域,然后用逗号分隔,而不是放入数据库中。

感谢您的帮助,非常感谢。

【问题讨论】:

  • 你已经为此编写了哪些代码?
  • explode() 会做一部分。

标签: php mysql pdo


【解决方案1】:
$array = explode(',', $_POST['textarea']); // this will contain an array of each item $array[0] will be item1 etc.

您可能还想用 trim() https://www.w3schools.com/php/func_string_ltrim.asp 处理逗号后的空格,这样您的数据库中就不会出现空格。

然后执行插入语句:

$statement = $PDO->prepare("INSERT INTO table(column1) VALUES(:item)");
foreach($array as $item) {
 //SQL to insert the array element      
  $statement->execute(array(
      "item" => $item
  ));
} //Something like this will do the trick... 

这有意义吗?

【讨论】:

  • foreach 开始之前,您可以而且应该只prepare 一次
  • 我会将$statement = $PDO... 放在foreach() 之外,因为准备好的语句的美妙之处在于它们可以重复使用。更好的方法可能是收集所有参数并动态创建一个语句,INSERTs 一次多行。
猜你喜欢
  • 2012-02-29
  • 1970-01-01
  • 1970-01-01
  • 2016-01-02
  • 1970-01-01
  • 1970-01-01
  • 2013-01-14
  • 2018-04-13
  • 1970-01-01
相关资源
最近更新 更多