在文本区域中为数据库中的每一行发布多封电子邮件


Post Multiple emails in text area for each row in database

我有一个文本区域,其中将按成员尽可能多地填充电子邮件。

   <textarea name="emailRefer"> </textarea> 
   <input type="submit"/>

当用户填写了电子邮件(例如 10 封电子邮件)时

   <textarea name="emailRefer">klaudia@yahoo.com, diaklau@ya.com, kaludi@hoo.com, and so on </textarea> 
   <input type="submit"/>

如果我用这个代码发布它:

  $ReferalEmail = $_POST['emailRefer'];
  if ($result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
                                               VALUES ('$ReferalEmail');")) 

上面的代码会将文本区域中的所有电子邮件插入一行到列 参考电子邮件.

但是现在当成员发布它时,我想要的它被发布为一个数组。

我的意思是作为一个数组,每封电子邮件都将插入到一行中。如果文本区域中有10封电子邮件,则每封电子邮件将插入10行。

怎么做,谁能帮我?提前谢谢。

[更新]

我已经用这段代码尝试了下面的答案,但它在每个第一行中给了我一个空白行。

 $ReferalEmail = $_POST['emailRefer'];
 $emails=explode(",",$ReferalEmail);
 foreach ($emails as $email)
 {
      $result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
                                            VALUES ('$email');")
 }

如果您通过昏迷分隔电子邮件 , ,您可以explode值:

$ReferalEmail = $_POST['emailRefer'];
$emails=explode(",",$ReferalEmail);
foreach ($emails as $email)
{
     $result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
                                           VALUES ('$email');")
}

当然,您应该在插入数据库之前清理输入。

试试这个:

$ReferalEmail = trim(preg_replace("/'s+/","",$_POST['emailRefer']));
$emails=explode(",",$ReferalEmail);
foreach ($emails as $email)
{
     if($email!=""){
        $result = $mysqli->query("INSERT INTO ReferalTable (ReferalEmail)
                                           VALUES ('$email');")
     }
}