【问题标题】:how to bulk add in mysql using php如何使用php批量添加mysql
【发布时间】:2010-01-22 18:51:15
【问题描述】:

如何在我的 php 中最大限度地使用添加代码,这是我的代码: 创建.php

             mysql_select_db("koro", $con);



   $sql="INSERT INTO students (IDNUMBER, LNAME, FNAME, MNAME, GRADEYR, ADDRESS)
                VALUES ('$_POST[INAME]', '$_POST[LName]', '$_POST[FName]',              '$_POST[MName]', '$_POST[GradeOrYear]', '$_POST[Address]')"; 
                if (!mysql_query($sql,$con))
     {
         die('Error: ' . mysql_error());
          }
           echo "<script>alert('Student Added!')</script>"


      ?>

createstudentform.html

     <form action="create.php" method="post">


      <td>ID:<input type="text" name="INAME" value="" /><br/>
     LastName:<input type="text" name="LName" value="" /><br/>
     Firstname:<input type="text" name="FName" value="" /><br/>
       Middlename:<input type="text" name="MName" value="" /><br/>
       GradeOrYear:<input type="text" name="GradeOrYear" value="" /><br/>
       Address:<input type="text" name="Address" value="" />
          <br/>


      </td>

          <td>ID:<input type="text" name="INAME" value="" /><br/>
        LastName:<input type="text" name="LName" value="" /><br/>
        Firstname:<input type="text" name="FName" value="" /><br/>
        Middlename:<input type="text" name="MName" value="" /><br/>
          GradeOrYear:<input type="text" name="GradeOrYear" value="" /><br/>
         Address:<input type="text" name="Address" value="" />
         <br/>

-im 使用上面的代码,但问题是,只有最后一个被保存到数据库中。 请帮忙,

【问题讨论】:

    标签: php mysql html


    【解决方案1】:

    如果您将 html 名称更改为:

    <input type="text" name="INAME[]" value="" /> 
    

    您应该能够以 $_POST['INAME'][0] 和 $_POST['INAME'][1] 的形式访问它们

    您还应该使用 mysql_real_escape_string() 来防止 SQL 注入攻击

    【讨论】:

      【解决方案2】:

      要在 Mysql 中插入多个值,可以使用以下语法:

      INSERT INTO table_name (colA, colB) VALUES (valA_1, valB_1), (valA_2, valB_2), ... (valA_n, valB_n)
      

      要从表单中获取此输入数据,请使用 Twelve47 的提示。

      因此,代码可能类似于:

      $sql = 'INSERT INTO table_name (colA, colB) VALUES ';
      $insert = array();
      foreach ($_POST['inputFieldA'] as $key => $value) {
       $insert[] = '("' . $_POST['inputFieldA'][$key] . '", "' .  $_POST['inputFieldB'][$key] . '")';
      }
      $sql .= implode(',', $insert);
      

      ...[在此处查询和使用数据]...

      其中 inputFieldA 和 inputFieldB 声明为:

      <input type="text" name="inputFieldA[]" value="" /> 
      <input type="text" name="inputFieldB[]" value="" /> 
      

      当然,你应该清理你的输入,要么使用 mysql_real_escape_string 转义,要么使用 mysqli 扩展或 PDO 扩展的预处理语句功能。

      希望对您有所帮助。

      【讨论】:

        【解决方案3】:

        在添加到数据库之前,您是否检查过是否从表单中获取了所有学生元素?看起来您为每个表单元素使用相同的名称,这意味着您只会在 create.php 脚本中获得一个学生

        【讨论】:

          猜你喜欢
          • 2016-06-13
          • 2016-07-11
          • 2021-09-04
          • 2010-12-05
          • 1970-01-01
          • 2019-02-22
          • 2011-06-20
          • 2018-03-14
          • 2014-07-03
          相关资源
          最近更新 更多