【发布时间】:2015-01-30 14:16:07
【问题描述】:
我正在尝试上传 CSV 文件以使用 php 将记录保存到数据库中。我用了sql方法LOAD DATA INFILE,但是还是不行。
Index.php 的格式为<input name='csv' type='file' id='csv'/>。
我的文件上传有 5 个字符串列和 2 个整数(最后一个),而且它只有两行,标题和值。
它们是“usuarios”数据库中的字段NOT NULL。
所以这就是问题所在,当我尝试添加一条记录(例如:'bea')时,它会说
.....(太长了)......K8docProps/app.xmlPK 数据对于第 1 行的“NombreUsuario”列来说太长了
是的,readfile 显示了这一点,所以我更改了每一列的详细信息(我认为这不是问题)并输入值 VARCHAR(200) / INTEGER(200),不管它不允许我输入更多长度,因为我尝试了 @987654326 @。
这是我的代码,我用其他例子做的:
subirCSV.php
要求('../cabses.php'); 要求('../conecta.php'); if (isset($_POST['submit'])) { if (is_uploaded_file($_FILES['csv']['tmp_name'])) { 回显“文件”。 $_FILES['csv']['name'] ."上传成功。"; echo "显示内容:"; readfile($_FILES['csv']['tmp_name']); } $handle = fopen($_FILES['csv']['tmp_name'], "r"); $标志=真; 而 (($data = fgetcsv($handle, 1000, " ")) !== FALSE) { if($flag) { $flag = false;继续; } $import="INSERT INTO usuarios (NombreUsuario,PassUsuario,EmailUsuario,Nombre,Apellidos,IdPropietario,IdRol) 值 ( '".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($句柄); 打印“导入完成”; } 别的 { 打印“不工作”; }也许是为了 UTF-8 编码?
这是我在 StackOverFlow 上的第一个问题,来自西班牙的大家好!谢谢!
【问题讨论】:
-
旁注:
MD5不是存储密码的好/安全散列方法。请参考password_hash() -
哦,很高兴知道!真的谢谢你!
标签: php mysql file csv fgetcsv