php导入CSV到MYSQL遇到特殊字符的问题。
CSV表中有个“工单号”的字段,数据中有个'号,见图。导入失败(如果删掉'号就可以正常导入)。我不可能要求用户每次导表时都手工去删除这个符合,所以要通过代码解决这个问题,...
CSV表中有个“工单号”的字段,数据中有个'号,见图。导入失败(如果删掉'号就可以正常导入)。我不可能要求用户每次导表时都手工去删除这个符合,所以要通过代码解决这个问题,但我不知道怎么解决,请指教谢谢。不要只是给一个思路,我要具体代码,谢谢。<?php //导入CSV表格:CSV转数组 $fp = fopen($_FILES['myfile']['tmp_name'], 'r'); while ( ($row = fgetcsv($fp)) !== FALSE ) { //从文件指针中读入一行并解析CSV $arr[] = $row; } fclose($fp); //开启事务,循环插入 $link = mysqli_connect("127.0.0.1", "root", "root", "zwxiaomi"); if (!$link){echo"<script>alert('数据库连接失败!')</script>";} $link->query("SET NAMES UTF8"); foreach($arr as $row){ $sql="INSERT INTO zaitugongdan (FirstName, LastName, danhao) VALUES ('".$row[0]."','".$row[1]."','".$row[2]."')"; $link->query($sql); }?>
展开
1个回答
展开全部
<?php //导入CSV表格:CSV转数组
$fp = fopen($_FILES['myfile']['tmp_name'], 'r');
while ( ($row = fgetcsv($fp)) !== FALSE ) { //从文件指针中读入一行并解析CSV
$arr[] = $row; } fclose($fp); //开启事务,循环插入
$link = mysqli_connect("127.0.0.1", "root", "root", "zwxiaomi");
if (!$link){echo"<script>alert('数据库连接失败!')</script>";}
$link->query("SET NAMES UTF8");
foreach($arr as $row){
$danhao=substr($row[2],1);
$sql="INSERT INTO zaitugongdan (FirstName, LastName, danhao)
VALUES ('".$row[0]."','".$row[1]."','".$danhao."')";
$link->query($sql);
}
?>
在代码中去掉这个符号不就可以了
追问
我自己又找到了一个方法,用addslashes($danhao)。你觉得哪个好?
追答
如果需要保留 ' 符号 用addslashes($danhao)好
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询