php将csv导入到mysql的问题。 100
由于第一行是字段名,我的目的就是想第一行不插入SQL,现在有3个思路:一是声明$a=0,循环时ifa=0就=2,否则就插入SQL。但缺点是每次循环都要if,不利于性能;二...
由于第一行是字段名,我的目的就是想第一行不插入SQL,现在有3个思路:
一是声明$a=0,循环时if a=0就=2,否则就插入SQL。但缺点是每次循环都要if,不利于性能;
二是一开始就删除CVS的第一行,再循环,这个,我不知道怎么删。
三是应该是最理想的,就是循环跳过第一行,这个,我不知道怎么调。
问题:选择哪个方法?如果是2、3个,教我怎么做,谢谢。
<?php
header("Content-Type: text/html; charset=utf-8");
$link = mysqli_connect("127.0.0.1", "root", "root", "test");
if (!$link){echo"<script>alert('数据库连接失败!')</script>";}
$link->query("SET NAMES UTF8");
$file=fopen("sss.csv","r");
while(!feof($file)){
$data=fgetcsv($file);
if(!is_array($data)) continue;//如果不是数组就跳出循环
$sql=$p="";
foreach($data as $val){$sql.=$p."'".mb_convert_encoding($val,'UTF-8','GBK')."'";//foreach遍历数组,mb_convert_encoding编码转换
$p=",";
}
// $sql="INSERT INTO testt (aaa, bbb, ccc) VALUES (".$sql.")";
// $link->query($sql);
echo $sql . "</br>";
}
fclose($file);
echo "ok";
?> 展开
一是声明$a=0,循环时if a=0就=2,否则就插入SQL。但缺点是每次循环都要if,不利于性能;
二是一开始就删除CVS的第一行,再循环,这个,我不知道怎么删。
三是应该是最理想的,就是循环跳过第一行,这个,我不知道怎么调。
问题:选择哪个方法?如果是2、3个,教我怎么做,谢谢。
<?php
header("Content-Type: text/html; charset=utf-8");
$link = mysqli_connect("127.0.0.1", "root", "root", "test");
if (!$link){echo"<script>alert('数据库连接失败!')</script>";}
$link->query("SET NAMES UTF8");
$file=fopen("sss.csv","r");
while(!feof($file)){
$data=fgetcsv($file);
if(!is_array($data)) continue;//如果不是数组就跳出循环
$sql=$p="";
foreach($data as $val){$sql.=$p."'".mb_convert_encoding($val,'UTF-8','GBK')."'";//foreach遍历数组,mb_convert_encoding编码转换
$p=",";
}
// $sql="INSERT INTO testt (aaa, bbb, ccc) VALUES (".$sql.")";
// $link->query($sql);
echo $sql . "</br>";
}
fclose($file);
echo "ok";
?> 展开
1个回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询