这是我的CSV文件:
https://drive.google.com/open?id=0B_1cAszh75fYTjdobFMwVFdVT2c
这是我上传CSV文件并将数据插入我的mysql表的代码:
if(isset($_POST["submit"]))
{
$ddates = $_POST['uploaddate'];
if($_FILES['file']['name'])
{
$filename = explode('.',$_FILES['file']['name']);
if($filename[1] == 'csv')
{
$handle = fopen($_FILES['file']['tmp_name'], "r");
while($data = fgetcsv($handle))
{
$item1 = mysqli_real_escape_string($connect, $data[0]);
$item2 = mysqli_real_escape_string($connect, $data[1]);
$item3 = mysqli_real_escape_string($connect, $data[2]);
$item4 = mysqli_real_escape_string($connect, $data[3]);
$item5 = mysqli_real_escape_string($connect, $data[4]);
$item6 = mysqli_real_escape_string($connect, $data[5]);
$item7 = mysqli_real_escape_string($connect, $data[5]);
$item8 = mysqli_real_escape_string($connect, $data[6]);
$item9 = mysqli_real_escape_string($connect, $data[6]);
$item10 = mysqli_real_escape_string($connect, $data[7]);
$item11 = mysqli_real_escape_string($connect, $data[7]);
$item12 = mysqli_real_escape_string($connect, $data[8]);
$item13 = mysqli_real_escape_string($connect, $data[9]);
$item14 = mysqli_real_escape_string($connect, $data[10]);
$item15 = mysqli_real_escape_string($connect, $data[11]);
$item16 = mysqli_real_escape_string($connect, $data[12]);
$sql="INSERT into tblone(uploaddate, one, two, three, four, five, six, seven, eight, nine, ten, eleven, twelve, thirteen, fourteen, fifteen, sixteen) values('$ddates', '$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$item9','$item10','$item11','$item12','$item13','$item14','$item15','$item16')";
mysqli_query($connect, $sql);
}
fclose($handle);
print "Import done";
}
}
}
当我尝试上传CSV文件时,它会显示错误“通知:未定义的偏移........:”
我知道为什么它会显示错误。如您所见,我的csv文件有9列,顶部有列标题。但接下来的4列没有任何标题。我的意思是“借方金额”“贷方金额”等在这些列的顶部没有值/标题。
我的代码可以正常工作,因为上传CSV文件并将数据插入到mysql表中。但是这个错误看起来并不好看。
我希望执行代码时不会出现任何错误。
对此有任何帮助将受到高度赞赏。
答案 0 :(得分:0)
只需将此代码放在您的phpfile之上
error_reporting(0);
或首先使用isset示例代码进行验证:
$data1 = (isset($data[0])) ? $data[0] : '';
等等然后在这里发送值
$item1 = mysqli_real_escape_string($connect, $data1);