我有一个文本区域,其中将按成员尽可能多地填充电子邮件。
<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');")
}
}