导入包含单引号的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
一样保存。我不知道为什么它会节省很多单引号。请给我建议我该如何解决。