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)
}

}
?>
展开
 我来答
散文精选大全
2017-03-24 · 想要多少有多少,都来看看
散文精选大全
采纳数:176 获赞数:242

向TA提问 私信TA
展开全部
直接引入带key和value的数组$data :
$keys = array_keys($data);
$values = array_values($data);
if($keys &&$values ){
$sql="INSERT INTO zaitugongdan (" . implode(',',$keys) . ") VALUES ('" . implode(',',$values ) . "')";
}
奴性的世界day
2017-03-23 · TA获得超过558个赞
知道小有建树答主
回答量:575
采纳率:0%
帮助的人:383万
展开全部
具体还是要看你csv情况,做个判断,调整VALUES值的位置
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式