我尝试在php中导入csv文件时未定义的变量数据

时间:2014-04-08 09:22:43

标签: php sql

我尝试使用PHP在我的SQL数据库中导入CSV文件。

我有这段代码

<?php  

    echo $_FILES['userfile']['name'];

    echo $_FILES['userfile']['size'];

    include ("AccesoBD.php");

    if ($_FILES['userfile']['size'] > 0) {
        echo "El archivo contiene informacion";

        $file = $_FILES['userfile']['tmp_name']; 
        $handle = fopen($file,"r"); 
        $data2 = fgetcsv($handle,1000,",","'");

        do { 
        if ($data[0]) { 
            echo "Entramos en el Import";
            mysql_query("INSERT INTO Alumno (Nombre, Apellidos, CorreoElectronico) VALUES 
                ( 
                    '".addslashes($data[0])."', 
                    '".addslashes($data[1])."', 
                    '".addslashes($data[2])."' 
                ) 
            "); 
        } 
        } while ($data = fgetcsv($handle,1000,",","'")); 


    }


?> 

我正确获取文件信息,而AccesoBD是一个额外的类来管理我对数据库的conexion,但是我得到的错误是没有声明数据变量。

关键是循环按原样输入正确的次数并打印正确的回显次数“Entramos en el Import”,但不插入任何内容以找不到这样的变量数据。

给我浏览器的文字错误是

alumnos.csv80El archivo contiene informacion
Notice: Undefined variable: data in C:\xampp\htdocs\iprofesor\importaralumnoss.php on line 17
Entramos en el ImportEntramos en el Import

PD对不起,如果我的英语不好,这是我第一次尝试使用该语言提出正式问题:)

3 个答案:

答案 0 :(得分:0)

您定义了$ data2,然后使用未定义的$ data。

$data2 = fgetcsv($handle,1000,",","'");

    do { 
    if ($data[0]) { 

答案 1 :(得分:0)

你还没有定义$ data try

$data2 = fgetcsv($handle,1000,",","'");

        do { 
        if ($data2[0]) { 
            echo "Entramos en el Import";
            mysql_query("INSERT INTO Alumno (Nombre, Apellidos, CorreoElectronico) VALUES 
                ( 
                    '".addslashes($data2[0])."', 
                    '".addslashes($data2[1])."', 
                    '".addslashes($data2[2])."' 
                ) 
            "); 
        } 
        } while ($data2); 

答案 2 :(得分:0)

do .. while首先执行do块的内容,然后 while表达式。在第一次运行时$data不存在,因为它仅在第一次执行后在while表达式中设置。你实际上想要一个普通的while

while ($data = fgetcsv($handle,1000,",","'")) {
    ...
}