我尝试使用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对不起,如果我的英语不好,这是我第一次尝试使用该语言提出正式问题:)
答案 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,",","'")) {
...
}