在数据库中上载csv文件-php
这是我的密码。我得到错误“注意:未定义的偏移量:9”。如果我在$item9之前拥有它,那么它可以工作,但实际上我希望在$item13之前拥有它在数据库中上载csv文件-php,php,csv,file-upload,fgetcsv,Php,Csv,File Upload,Fgetcsv,这是我的密码。我得到错误“注意:未定义的偏移量:9”。如果我在$item9之前拥有它,那么它可以工作,但实际上我希望在$item13之前拥有它 if(isset($_POST["submit"])) { if($_FILES['file']['name']) { $filename = explode(".", $_FILES['file']['name']); if($filename[1] == 'csv') {
if(isset($_POST["submit"]))
{
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[6]);
$item8 = mysqli_real_escape_string($connect, $data[7]);
$item9 = mysqli_real_escape_string($connect, $data[8]);
$item10 = mysqli_real_escape_string($connect, $data[9]);
$query = "INSERT into tab1(country, jan, feb,mar,apr,may,jun,jul,aug) values('$item1','$item2','$item3','$item4','$item5','$item6','$item7','$item8','$item9','$item10')";
mysqli_query($connect, $query);
}
fclose($handle);
你在最后的评论中回答了自己。所以,照你说的去做-例如,像这样替换每个项目行:
$item1 = array_key_exists(0, $data) ? mysqli_real_escape_string($connect, $data[0]) : '0';
不,我的错误是针对未定义的偏移量,重复q中的第三个通知类型是?您的一行没有第9个索引。在
中执行打印($data)
,同时查看每行的输出(注释掉变量声明/查询)。我尝试过,但错误仍然存在same@PX. print r只是简单地输出数据,以便您可以在屏幕上看到它并进行调试-这不是一个修复程序,我尝试了它,错误仍然是您正确替换示例中的值的相同ID?了解数组\键\存在函数和速记if/else。祝你好运:)