使用PHP无法正常插入1200条记录

时间:2015-12-02 18:45:06

标签: php mysql sql insert

我正在开发一个为我的学校创建登录服务的项目。到目前为止一切正常,但我希望能够将所有学生信息(大约1200条记录)从Excel传输到数据库。

如果我能够从网站上做到这一点,那将是最好的,但目前还没有。

我在这里查看了一些帖子,但未能找到合适的解决方案

INSERT INTO leerlingen (Stamnr, Klas, Roepnaam, Tussenv, Achternaam, Adres, Postcode, Woonplaats,Telefoon, Geboortedatum, Binnen, Betaald) VALUES(8101466,'class','name','','name','street','number','city','phone number','bday',0,0);

如果我只使用一个插入语句它可以正常工作但是当我尝试发送2个或更多时它不会,我没有收到错误但它没有做任何事情。

<!DOCTYPE html>

<head>
<script style="tekst/javascript" src="main.js"></script>
<title>Zlv pasjessysteem</title>
<link rel="stylesheet" type="text/css" href="1.0.css">
</head>
<body onload="screen()">
  <div id="Screen"> <!-- Deze div gaat over het hele scherm-->
    <div id="Menubalk"> <!-- Dit geeft de menubalk aan-->
      <li>
        <ul><a href="Index.php">Home</a></ul>  <!-- Dit geeft de link voor de Home knop aan-->
        <ul><a href="Help.php">Help</a></ul>  <!-- Dit geeft de link voor de Help knop aan-->
        <ul><a href="Instellingen.php">Instellingen</a></ul>  <!-- Dit geeft de link voor de Instellingen knop aan-->
        <ul><a href="Statistiek.php">Statistiek</a></ul>  <!-- Dit geeft de link voor de Statistiek knop aan-->
        <ul><a href="Credits.html">Credits</a></ul>  <!-- Dit geeft de link voor de Credits knop aan-->
      </li>
    </div>
    <div id="tekst">
    <h3>code vanuit je excel bestand voor de nieuwe database</h3>
    <form action="instellingen.php" method="post"><!--maak het form-->
      <textarea name="code"></textarea><br><!--code insert comes here-->
      <input type="submit" value="verstuur"><!--verzend knop-->
    </form>
    <h3>weg met de database</h3>
    <form action="instellingen.php" method="post"><!--maak het form-->
       <input type="submit" value="verwijder database"><!--verzend knop-->
       <input style='display:none;' type=" text" value="remove" name="code"><br><!--remove database-->
    </form>
    </div>
  </div>

<?php
$servername = "localhost";//connect met de database door middel van deze variabelen
$username = "root";
$password = "";
$dbname = "zlv";
// begin de verbinding
$conn = mysqli_connect($servername, $username, $password, $dbname);
/* check connection */
if (mysqli_connect_errno()) {
    printf("Connect failed: %s\n", mysqli_connect_error());//verbinding mislukt? geef error message
    exit();
}
$code = " ";
if (isset($_POST["code"])){$code=$_POST["code"];
  if($code=="remove"){
    $sql="DELETE FROM leerlingen";
  mysqli_query($conn, $sql);
  }
  else{
  $sql=$code;
  echo $sql;
  $sql="INSERT INTO leerlingen (Stamnr, Klas, Roepnaam, Tussenv, Achternaam, Adres, Postcode, Woonplaats,Telefoon, Geboortedatum, Binnen, Betaald) VALUES(8101466,'value','value','','value','value','value','value','value','1998-04-12',0,0);
INSERT INTO leerlingen (Stamnr, Klas, Roepnaam, Tussenv, Achternaam, Adres, Postcode, Woonplaats,Telefoon, Geboortedatum, Binnen, Betaald) VALUES(8111963,'value','value','','value','value','value','value','value','2003-12-03',0,0)
";
  mysqli_query($conn, $sql) or die(mysql_error());;
  }
}

?>

</body>

请注意,我将所有多个查询放在一个变量中(不确定是否可以)。我需要以另一种方式做到这一点还是有更简单的方法?

2 个答案:

答案 0 :(得分:4)

您需要使用mysqli_multi_query(...)代替mysqli_query(...)。然后,您可以一次执行多个查询。

点击此处:http://php.net/manual/de/mysqli.multi-query.php

但是,您可以使用一个insert into语句插入多个记录。

INSERT INTO (id, col2, col3)
VALUES (1, val1, val2),
(2, val3, val4),
(3, val5, val6);

这将输入三个新记录。

点击此处了解更多信息:http://dev.mysql.com/doc/refman/5.7/en/insert.html

答案 1 :(得分:0)

除非您将查询更改为单个查询,否则它无法使用mysqli_query()

INSERT INTO leerlingen 
            (stamnr, 
             klas, 
             roepnaam, 
             tussenv, 
             achternaam, 
             adres, 
             postcode, 
             woonplaats, 
             telefoon, 
             geboortedatum, 
             binnen, 
             betaald) 
VALUES      (8101466, 
             'ZH5b', 
             'Sheri', 
             '', 
             'Zwietering', 
             'hacker road 123', 
             '1234 aa', 
             'stad', 
             '075-123456789', 
             '1998-04-12', 
             0, 
             0), 
            (8111963, 
             'ZA1a', 
             'Maaike', 
             '', 
             'lastname', 
             'hacker road 12', 
             '1234 aa', 
             'stad', 
             '075-123456789', 
             '2003-12-03', 
             0, 
             0) 

如果您需要多个查询,请使用mysqli_multi_query(),请参阅@blckbird answer