如何使用php将多行数据插入Mysql数据库

如何使用php将多行数据插入Mysql数据库,php,mysql,database,Php,Mysql,Database,我有以下代码: <?php session_start(); $page_name = 'Send Emails'; require_once('header.php'); if(!empty($_POST['send'])){ $id_mail= ""; foreach ($_POST['selected'] as $key => $value) { echo "$key - $value <br

我有以下代码:

    <?php
session_start();
$page_name = 'Send Emails';
    require_once('header.php');
    if(!empty($_POST['send'])){
        $id_mail= "";
        foreach ($_POST['selected'] as $key => $value) {
            echo "$key - $value <br>";
            $id_mail .= "$value, ";
            }
            $id_mail= substr($id_mail, 0, -2);
        }
    if(!empty($_POST['Send2'])){
            $mail= mysqli_query($conn, "SELECT mail FROM students WHERE student_id IN($_POST[id_mail])");
            echo "SELECT mail FROM students WHERE student_id IN($_POST[id_mail]) ";
            while ($row_mail = mysqli_fetch_assoc($mail)) {
                echo "$row_mail[mail] ";
            $to = $row_mail['mail'];
            $subject = $_POST['head'];
            $message = $_POST['body'];
            $headers = 'From: code-week@example.com' . "\r\n" .
            'Please do not reply to this message' . "\r\n" .
            'X-Mailer: PHP/' . phpversion();
            mail($to, $subject, $message, $headers);
            }

        }
?>
<form name='mail2' method='post' action='send_email.php'><br/>
<input type="hidden" name="id_mail" value="<?php echo $id_mail; ?>">
    <br/>

<input type='text' name='head' placeholder='header'>
<br/>
<br/>

<textarea name='body' rows="4" cols="50" placeholder='body'></textarea><br/>
<br/>
<input class='btn btn-danger'type='submit' name="Send2" value='Send'>
</form>



首先,最好不要在查询中使用未替换的POST数据,因为这可能会导致错误


至于“插入”部分-如果您有所有必需的字段、主键和默认值,只需使用语句保存数据即可。首先,最好不要在查询中使用未替换的POST数据,因为这可能会导致错误

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
至于“插入”部分-如果您有所有必需的字段、主键和默认值,只需使用语句保存数据即可。为通知的
创建一列,并最初将其值设置为零

INSERT INTO tbl_name (a,b,c) VALUES(1,2,3),(4,5,6),(7,8,9);
2) 。电子邮件发送给学生后,立即将
is notified
列更新为1

如果要使用PDO进行多次更新,可以使用以下方法:-

<?php
try
{
    $s = $conn->prepare("your SQL");
}
catch(PDOException $e)
{
    echo $e->getMessage();
}

foreach(loop through the ids here)
{
    $s->bindParam(':paramname', $paramvalue);
    $s->execute();
}
?>

1)。为通知的
创建一列,并最初将其值设置为零

2) 。电子邮件发送给学生后,立即将
is notified
列更新为1

如果要使用PDO进行多次更新,可以使用以下方法:-

<?php
try
{
    $s = $conn->prepare("your SQL");
}
catch(PDOException $e)
{
    echo $e->getMessage();
}

foreach(loop through the ids here)
{
    $s->bindParam(':paramname', $paramvalue);
    $s->execute();
}
?>

这对我很有用:

if(!empty($_POST['Send2'])){ 
14             $mail= mysqli_query($conn, "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail])"); 
15             echo "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail]) "; 
16             while ($row_mail = mysqli_fetch_assoc($mail)) { 
17                 echo "$row_mail[mail] "; 
18             $to = $row_mail['mail']; 
19             $subject = $_POST['head']; 
20             $message = $_POST['body']; 
21             $headers = 'From: code-week@example.com' . "\r\n" . 
22             'Please do not reply to this message' . "\r\n" . 
23             'X-Mailer: PHP/' . phpversion(); 
24             mail($to, $subject, $message, $headers); 
25             $sent_mails= mysqli_query($conn, "INSERT INTO sent_mails (id_st, mail_head, content) VALUES ('$_POST[id_mail]', '$subject', '$message') "); 
26             if (mysqli_query($conn, $sent_mails)){ 
27              echo "Success"; 
28             } else { 
29              echo "Error ". $sent_mails . "<br/>" . mysqli_error($conn); 
30             } 
31             } 
32         } 
if(!empty($_POST['Send2']){
14$mail=mysqli_query($conn,“选择学生id,学生id所在的学生的邮件($_POST[id_mail]));
15 echo“选择学生id,来自学生id所在的学生的邮件($\u POST[id\u mail])”;
16而($row_mail=mysqli_fetch_assoc($mail)){
17回声“$row_邮件[邮件]”;
18$to=$row_邮件['mail'];
19$subject=$_POST['head'];
20$message=$_POST['body'];
21$headers='From:code-week@example.com“。”\r\n”。
22“请不要回复此邮件”。“\r\n”。
23'X-Mailer:PHP/'.phpversion();
24封邮件($to、$subject、$message、$headers);
25$sent_mails=mysqli_query($conn,“插入到sent_mails(id_st,mail_head,content)值(“$_POST[id_mail]”,“$subject]”,“$message”);
26如果(mysqli_查询($conn,$sent_邮件)){
27“成功”;
28}其他{
29回显“错误”。$已发送邮件。“
”。mysqli\u错误($conn); 30 } 31 } 32 }
这对我很有用:

if(!empty($_POST['Send2'])){ 
14             $mail= mysqli_query($conn, "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail])"); 
15             echo "SELECT student_id, mail FROM students WHERE student_id IN($_POST[id_mail]) "; 
16             while ($row_mail = mysqli_fetch_assoc($mail)) { 
17                 echo "$row_mail[mail] "; 
18             $to = $row_mail['mail']; 
19             $subject = $_POST['head']; 
20             $message = $_POST['body']; 
21             $headers = 'From: code-week@example.com' . "\r\n" . 
22             'Please do not reply to this message' . "\r\n" . 
23             'X-Mailer: PHP/' . phpversion(); 
24             mail($to, $subject, $message, $headers); 
25             $sent_mails= mysqli_query($conn, "INSERT INTO sent_mails (id_st, mail_head, content) VALUES ('$_POST[id_mail]', '$subject', '$message') "); 
26             if (mysqli_query($conn, $sent_mails)){ 
27              echo "Success"; 
28             } else { 
29              echo "Error ". $sent_mails . "<br/>" . mysqli_error($conn); 
30             } 
31             } 
32         } 
if(!empty($_POST['Send2']){
14$mail=mysqli_query($conn,“选择学生id,学生id所在的学生的邮件($_POST[id_mail]));
15 echo“选择学生id,来自学生id所在的学生的邮件($\u POST[id\u mail])”;
16而($row_mail=mysqli_fetch_assoc($mail)){
17回声“$row_邮件[邮件]”;
18$to=$row_邮件['mail'];
19$subject=$_POST['head'];
20$message=$_POST['body'];
21$headers='From:code-week@example.com“。”\r\n”。
22“请不要回复此邮件”。“\r\n”。
23'X-Mailer:PHP/'.phpversion();
24封邮件($to、$subject、$message、$headers);
25$sent_mails=mysqli_query($conn,“插入到sent_mails(id_st,mail_head,content)值(“$_POST[id_mail]”,“$subject]”,“$message”);
26如果(mysqli_查询($conn,$sent_邮件)){
27“成功”;
28}其他{
29回显“错误”。$已发送邮件。“
”。mysqli\u错误($conn); 30 } 31 } 32 }

阅读时间很长……如果您想回答您的问题,请以结构化的方式提问……您真正想做什么?没有人会通读所有这些。对不起,我不知道如何正确地解释,而不是这么长的时间…除非你是一个快速阅读者;-)在打开PHP标记后立即将错误报告添加到文件顶部,例如
非常冗长…请以结构化的方式提问,如果您想回答您的问题,请回答…您实际上想做什么?没有人会通读所有这些。对不起,我不知道如何正确地解释,而不是这么长的时间…除非你是一个快速阅读者;-)在打开PHP标记后立即将错误报告添加到文件顶部,例如
,这会起作用,是的,但我不知道会有多少值字段。如果我写了3行,并选择5个人发送电子邮件,它将无法工作。如果我写了5行,但只输入了3行的数据,同样,不起作用。如果代码后面的值可以是动态的,基于为电子邮件选择的人员,这将是非常好的。这将是可行的,是的,但我不知道我会有多少个值字段。如果我写了3行,并选择5个人发送电子邮件,它将无法工作。如果我写了5行,但只输入了3行的数据,同样,不起作用。如果“代码后”值可以根据选定的电子邮件用户以某种方式动态显示,那将是非常好的选择。这看起来是一个不错的选择,谢谢。一如既往的K.I.S:)@MihailIvanchev别忘了接受帮助你的答案;)你能给出一个不是PDO的代码示例吗?像对象还是程序?我在工作中不使用PDO,实现它会更困难。@MihailIvanchev我可以,但我建议您使用PDO。对不起,这不起作用。我原以为它会奏效,但我为之制作的人基本上希望它具有与邮箱类似的功能。其想法是将发送的电子邮件保存到数据库中的“已发送电子邮件”表中,我可以显示该表。仅将状态从0更改为1并不能将其删除。这看起来是一个不错的选择,谢谢。一如既往的K.I.S:)@MihailIvanchev别忘了接受帮助你的答案;)你能给出一个不是PDO的代码示例吗?像对象还是程序?我在工作中不使用PDO,实现它会更困难。@MihailIvanchev我可以,但我建议您使用PDO。对不起,这不起作用。我原以为这会奏效的,但我要做的人