【问题标题】:Parse CSV From HTML form and Insert into MYSQL Database从 HTML 表单解析 CSV 并插入 MYSQL 数据库
【发布时间】:2012-08-13 16:28:37
【问题描述】:

我正在尝试获取一个数组并将其插入到 MYSQL 数据库中的单独行中。

基本上,我想在一个字段中输入前 5 个列表的 HTML 表单,但每个值用逗号分隔。因此,例如(艺术家 1、艺术家 2、艺术家 3 等)

然后必须将这 5 个值分成 5 个值,然后将这些值插入到 MYSQL 数据库中的 5 行中。

所以 HTML 表单看起来像这样:

 <tr>
 <td>Loud Rock</td>
 <td><label for="lr_topfive"><input type="text" placeholder="" name="lr_topfive" size="75"
 maxlength="100" autofucus required /></label></td>
 </tr>

然后将表单值发送到另一个包含以下代码的 php 文件:

$val = $_POST['lr_topfive'];
$data = str_getcsv($val);

??????


$lr_one = mysql_prep($_POST['lr_one']);
$lr_two = mysql_prep($_POST['lr_two']);
$lr_three = mysql_prep($_POST['lr_three']);
$lr_four = mysql_prep($_POST['lr_four']);
$lr_five = mysql_prep($_POST['lr_five']);

$query = "INSERT INTO xyz_wb (lr_one, lr_two, lr_three, lr_four, lr_five) VALUES ('{$lr_one}','{$lr_two}', '{$lr_three}', '{$lr_four}', '{$lr_five}')";
$result = mysql_query($query, $connection);
    if ($result) {
        redirect_to("email-ready.php");
    } else {
    //display error message
    echo "<p>Yikes!</p>";
    echo "<p>" . mysql_error() . "</p>";
    }

我知道“lr_topfive”值被前两行解析并分隔成不同的值,但在将这些值插入 MYSQL DB 之前我不知道该怎么做。

【问题讨论】:

标签: php mysql html csv


【解决方案1】:

我想你只是在寻找:

$top_five_array = explode(',', $_POST['lr_topfive']);

然后:

$lr_one = mysql_prep($top_five_array[0]);
$lr_two = mysql_prep($top_five_array[1]);
....

但是,如果您的输入字段中没有正好 4 个逗号,这将会中断。

除此之外,您还需要使用 PDO 或 mysqli 切换到准备好的语句,请参阅问题下方的 cmets。

【讨论】:

  • 如何将 ($top_five_array[0]) 变量插入数据库?我不需要先把它转回字符串吗?
  • @user1478878 这就是我在第二部分中所做的,将其分配给$lr_one等。
猜你喜欢
  • 2014-06-21
  • 2012-02-07
  • 1970-01-01
  • 2019-01-12
  • 1970-01-01
  • 2010-11-03
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
相关资源
最近更新 更多