PHP – 将csv导入数据库数据的时间过长
|
我正在尝试上传CSV文件以使用PHP将记录保存到数据库中.我使用了sql方法LOAD DATA INFILE,但它无论如何都没有用. Index.PHP的格式为< input name ='csv'type ='file'id ='csv'/>. 我的文件上传有5个字符串列和2个整数(最后一个),而且它只有两行,标题和值. 它们是’usuarios’数据库中的字段NOT NULL.
是的,readfile显示,所以我改变了每一列的细节(我不认为这是问题)并且放置值VARCHAR(200)/ INTEGER(200),不管它不会让我放更长的因为我尝试指定密钥太长;最大密钥长度为767字节. 这是我的代码,我用其他例子做了: subirCSV.PHP
require ('../cabses.PHP');
require ('../conecta.PHP');
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['csv']['tmp_name'])) {
echo "File ". $_FILES['csv']['name'] ." uploaded successfully.";
echo "Displaying contents:";
readfile($_FILES['csv']['tmp_name']);
}
$handle = fopen($_FILES['csv']['tmp_name'], "r");
$flag = true;
while (($data = fgetcsv($handle, 1000, " ")) !== FALSE) {
if($flag) { $flag = false; continue; }
$import="INSERT INTO usuarios (NombreUsuario,PassUsuario,EmailUsuario,Nombre,Apellidos,IdPropietario,IdRol) VALUES
(
'".trim($data[0], '"')."',
'".trim($data[1], '"')."',
'".trim($data[2], '"')."',
'".trim($data[3], '"')."',
'".trim($data[4], '"')."',
'".trim($data[5], '"')."',
'".trim($data[6], '"')."'
)
";
$oConni->query($import) or die(MysqLi_error($oConni)."____________".$import);
}
fclose($handle);
print "Import done";
} else {
print "Not working";
}
也许它是针对UTF-8编码的? 这是我在StackOverFlow中的第一个问题,所以来自西班牙的大家好!谢谢你! 解决方法: 好吧,我终于完成了!首先,我意识到分离器是;并使用addslashes($data [0])工作正常. 您可以使用我的代码并尝试它.
require ('../conecta.PHP');
if (isset($_POST['submit'])) {
if (is_uploaded_file($_FILES['csv']['tmp_name'])) {
$handle = fopen($_FILES['csv']['tmp_name'], "r");
$flag = true;
while (($data = fgetcsv($handle, 1000, ";")) !== FALSE) {
if($flag) { $flag = false; continue; }
$sql="INSERT INTO usuarios (NombreUsuario,PassUsuario,EmailUsuario,Nombre,Apellidos,IdPropietario,IdRol) VALUES
(
'".addslashes($data[0])."',
'".addslashes(md5($data[1]))."',
'".addslashes($data[2])."',
'".addslashes($data[3])."',
'".addslashes($data[4])."',
'".addslashes($data[5])."',
'".addslashes($data[6])."'
)
";
$oConni->query($sql);
}
fclose($handle);
header('Location:../index.PHP');
} else {
print "No funciona";
}
}
(编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
