<?php
$data=file("data.csv");
$j=count($data);
for($i=2;$i<$j;$i++){
$val="'".str_replace(",","','",trim($data[$i]))."'";
$sql="insert into tab values(".$val.")";
mysql_query($sql,$mylink);
}
?>//最简单的形式]
//我不了解csv 现在给你改下
<?php
$fp=fopen("a.csv","r");
while(! feof($fp)){
$data=fgetcsv($fp);
if(!is_array($data))
continue;
$sql=$p="";
foreach($data as $val){
$sql.=$p."'".$val."'";
$p=",";
}
$sql="insert into tab values(".$sql.")";
echo $sql;
//mysql_query($sql,$mylink);
}
fclose($fp);
?>
追问谢谢你的答案 可以正常生成sql 语句 可是存在乱码问题 乱码转换语句怎么写呢?
追答 foreach($data as $val){ $sql.=$p."'".mb_convert_encoding($val,'UTF-8','GBK')."'";//你数据库用的utf-8吧,转下码 $p=","; }
追问厉害,乱码解决了,这个foreach 应该是从第一行开始读取,我想要从第3行怎么改呢?
追答 <?php$fp=fopen("a.csv","r");
$i=0;while(! feof($fp)){
$data=fgetcsv($fp);
if(++$i<3)
continue;//不到第三行,不执行下边语句 if(!is_array($data)) continue; $sql=$p=""; foreach($data as $val){ $sql.=$p."'".$val."'"; $p=","; } $sql="insert into tab values(".$sql.")"; echo $sql; //mysql_query($sql,$mylink);}fclose($fp);?>