我正在开发一个为我的学校创建登录服务的项目。到目前为止一切正常,但我希望能够将所有学生信息(大约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>
请注意,我将所有多个查询放在一个变量中(不确定是否可以)。我需要以另一种方式做到这一点还是有更简单的方法?
答案 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