c语言读写csv文件有单引号,如何解决csv文件导入中的单引号错误?

导入包含单引号的csv文件时遇到问题。在我的csv文件中,有一些数据带有单引号(撇号)。如何解决csv文件导入中的单引号错误?

"User's answer","answer one","answer two","answer three".

我使用逗号(,)来分隔我csv中的列。 当我尝试将数据导入数据库时​​,它显示错误。这是我的代码。

while(($data=fgetcsv($handle,1000,",")) != FALSE){

$id = $data[0];

$name = $data[1];//User's name

$sql = "UPDATE my_table SET name='$name' WHERE id='$id'";

mysql_db_query($dbname, $sql)or die("update error".mysql_error());

}

上面的代码显示sql语法错误。如果我从csv文件中删除单引号(')并导入,则一切正常。但某些数据将来可能包含单引号(')。所以,我想补充mysql_real_escape_string到$name这样

while(($data=fgetcsv($handle,1000,",")) != FALSE){

$id = $data[0];

$name = mysql_real_escape_string($data[1]);//User's name

$sql = "UPDATE my_table SET name='$name' WHERE id='$id'";

mysql_db_query($dbname, $sql)or die("update error".mysql_error());

}

但是,将其导入到数据库下面我展示。

'User''s answer'

这是错误的,因为我想保存就像User's answer。我不知道为什么它节省了很多单引号。请给我建议,我该如何解决它。

2015-12-10

Cloud

+0

看看这个:http://php.net/manual/en/function.addslashes.php –

+0

为什么不使用MySQL LOAD DATA? http://dev.mysql.com/doc/refman/5.7/en/load-data.html它会有点棘手,因为你不必只导入一个CSV文件,但也更新,但它比解析通过代码的文件 - 也,使用准备好的语句 –

+0

当我使用** addslashes **而不是** mysql_real_escape_string **时,它显示像这样的''用户'的答案'相同的错误。谢谢。 –

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值