我正在通过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) ."\")");
......这对我不起作用
答案 0 :(得分:1)
我不知道您的cleanse
函数究竟是做什么的,但为什么不使用mysql_real_escape_string?这就是它的用途。
答案 1 :(得分:0)
答案 2 :(得分:0)
我不知道电子邮件地址中的单引号是否有效,但请查看此(您的)行:
$query = mysql_query("INSERT INTO addresses (lid, email_addresses) VALUES ('$lid', '$clean_value')");
尝试以这种方式使用它(盖上一个字符串?):
$query = mysql_query("INSERT INTO addresses (lid, email_addresses) VALUES (".$lid.",\"". mysql_real_escape_string($data[$c])."\")");