PHP导入CSV到MYSQL的问题
CSV中字段的列位置可能变动,需要通过判断得出INSERTINTO语句中VALUES的内容。如何判断?<?php//导入CSV表格:CSV转数组$fp=fopen($_F...
CSV中字段的列位置可能变动,需要通过判断得出INSERT INTO语句中VALUES的内容。
如何判断?
<?php
//导入CSV表格:CSV转数组
$fp = fopen($_FILES['myfile']['tmp_name'], 'r');
while ( ($row = fgetcsv($fp)) !== FALSE ) {
$arr[] = $row;
}
fclose($fp);
//循环插入SQL。
$link = mysqli_connect("127.0.0.1", "root", "root", "zwxiaomi");
if (!$link){echo"<script>alert('数据库连接失败!')</script>";}
$link->query("SET NAMES UTF8");
$zd='姓名,电话,地址'; //SQL数据表的字段
$crkg=0;
foreach($arr as $row){
if($crkg==0){ //判断遍历的是否是第一行,因为第一行是字段名,不插入SQL。
//这里可以中$row[0]、$row[1]的方式得出CSV的字段名,字段名是固定的,例如'姓名,电话,地址',但字段所在的列位置有可能变化,例如‘电话’有时在第二列,有时在第三列,或其它列,这就是问题,导致我不知道怎么写INSERT INTO语句的VALUES ('""')。
//问题:我如何可以在这里根据 $zd 的顺序,得出对应的列数并排序。如:$v=row[2],row[3],row[6]
//不知道这里的代码怎么写,谢谢。
$crkg=1;
}else{ //第二行开始遍历插入SQL。
$sql="INSERT INTO zaitugongdan (" . $zd . ") VALUES ('" . $v . "')";
$link->query($sql)
}
}
?> 展开
如何判断?
<?php
//导入CSV表格:CSV转数组
$fp = fopen($_FILES['myfile']['tmp_name'], 'r');
while ( ($row = fgetcsv($fp)) !== FALSE ) {
$arr[] = $row;
}
fclose($fp);
//循环插入SQL。
$link = mysqli_connect("127.0.0.1", "root", "root", "zwxiaomi");
if (!$link){echo"<script>alert('数据库连接失败!')</script>";}
$link->query("SET NAMES UTF8");
$zd='姓名,电话,地址'; //SQL数据表的字段
$crkg=0;
foreach($arr as $row){
if($crkg==0){ //判断遍历的是否是第一行,因为第一行是字段名,不插入SQL。
//这里可以中$row[0]、$row[1]的方式得出CSV的字段名,字段名是固定的,例如'姓名,电话,地址',但字段所在的列位置有可能变化,例如‘电话’有时在第二列,有时在第三列,或其它列,这就是问题,导致我不知道怎么写INSERT INTO语句的VALUES ('""')。
//问题:我如何可以在这里根据 $zd 的顺序,得出对应的列数并排序。如:$v=row[2],row[3],row[6]
//不知道这里的代码怎么写,谢谢。
$crkg=1;
}else{ //第二行开始遍历插入SQL。
$sql="INSERT INTO zaitugongdan (" . $zd . ") VALUES ('" . $v . "')";
$link->query($sql)
}
}
?> 展开
2个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询