Удалить кучу экранированных цитат из MYSQL - PullRequest
0 голосов
/ 04 августа 2010

У меня странный случай - я портирую некоторые данные из одной CMS в другую.Оба работают на LAMP.

В старой CMS данные сохранялись с косыми чертами в БД.

Примеры:

Hi. Thanks for looking. It\'s \"awesome\".

Правильно отображается при выводе с помощьюстарая CMS как:

Hi. Thanks for looking. It's "awesome".

Но в новой CMS тот же текст хранится просто как следующий, и они имеют дело с кавычками, когда он выходит:

Hi. Thanks for looking. It's "awesome".

IЯ попытался заменить () непосредственно на MySQL, но это просто экранирует кавычки и удаляет все кавычки.Затем я попытался извлечь все данные с помощью php и вставить их обратно, не делая ничего, надеясь, что косые черты не попадут в данные, и я буду в порядке, но не такая удача - похоже, это работает для одного из двухстрок, но запрос не работает.

Есть идеи?Прошло много времени с тех пор, как я играл с add / stripslashes и т. Д.

Спасибо

Ответы [ 2 ]

1 голос
/ 04 августа 2010

в PHP вы должны сделать это

$data = stripslashes($data);
$data = mysql_real_escape_string($data);
0 голосов
/ 04 августа 2010

если вы используете PHP для импорта ваших данных, вы захотите выполнить -

str_replace("'", "''")

для каждой записи.

- вот как MYSQL экранируетсястроки

...