我正在通过 fgetcsv()
将 CSV 文件中的电子邮件地址上传到 MySQL 数据库中。我遇到的问题是我无法转义包含撇号(或单引号)的电子邮件地址。
所以,O'Keefe@aol.com
不会变成 O\'Keefe@aol.com
。
我知道这是应该发生的,但是我一直无法找到一个可行的解决方案来转义撇号。有人可以帮我吗?这是我的代码:
while (($data = fgetcsv($handle, 1000, ',')) !== FALSE)
{
$num = count($data);
$row++;
for ($c=0; $c < $num; $c++) {
//echo $data[$c] . "<br />\n";
$clean_value = cleanse($data[$c]);
if(validEmail($clean_value)){
$query = mysql_query("INSERT INTO addresses (lid, email_addresses) VALUES ('$lid', '$clean_value')");
}else{
if($clean_value != ""){
$invalid_addresses .= $clean_value.', ';
}
}
/*if(mysql_error()){
$failed_addresses .= $data[$c].', '.mysql_error() . "<br />\n";
}*/
}
}
$query = mysql_query("INSERT INTO addresses (lid, email_addresses) VALUES ('$lid', \"". mysql_real_escape_string($clean_value) ."\")");
...这对我不起作用
最佳答案
我不知道你的 cleanse
函数到底做了什么,但为什么不使用 mysql_real_escape_string ?这就是它的用途。
关于php - 使用 fgetcsv() 在 PHP CSV 上传中转义撇号时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3234940/