插入 1200 条记录 PHP 不起作用
Inserting 1200 records with PHP not working
我正在做一个项目,为我的学校创建一个登录服务。到目前为止一切正常,但我希望能够将所有学生信息(大约 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>
请注意,我将所有多个查询放在一个变量中(不确定是否可以)。我需要换一种方式还是有更简单的方法?
您需要使用 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
除非您将查询更改为单个查询,否则它将不适用于 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 回答
我正在做一个项目,为我的学校创建一个登录服务。到目前为止一切正常,但我希望能够将所有学生信息(大约 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>
请注意,我将所有多个查询放在一个变量中(不确定是否可以)。我需要换一种方式还是有更简单的方法?
您需要使用 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
除非您将查询更改为单个查询,否则它将不适用于 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 回答