Избавление от апострофов в PHP CSV Загрузить с помощью fgetcsv () - PullRequest
1 голос
/ 13 июля 2010

Я загружаю адреса электронной почты из файла CSV через fgetcsv() в базу данных 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) ."\")");

... Это не работает для меня

Ответы [ 3 ]

1 голос
/ 13 июля 2010

Я не знаю, что именно делает ваша cleanse функция, но почему бы не использовать mysql_real_escape_string ? Вот для чего это.

0 голосов
/ 13 июля 2010

Я не знаю, действительны ли одинарные кавычки в адресах электронной почты, но посмотрите на эту (вашу) строку:

$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])."\")");
0 голосов
/ 13 июля 2010

Использовать mysql_real_escape_string .

...