Как я могу автоматически экранировать кавычки в контенте при экспорте из MySql в файл sql? - PullRequest
0 голосов
/ 21 сентября 2010

У нас есть веб-сайт Joomla, который мы хотим скопировать на другой хост-сайт. Пока что все скопировано, кроме базы данных. Проблема, с которой мы столкнулись, заключается в следующем:

После экспорта информации базы данных из нашего старого веб-сайта в файл .sql и попытки импортировать ее в пустую базу данных на нашем новом хосте, кажется, что текст (контент) на веб-сайте, кажется, разрывается в различных точках. Я обнаружил, что это из-за одинарных кавычек ' в тексте, таких как "You're welcome". Вместо этих двух слов он говорит только You. Я знаю, что кавычки разбивают запросы SQL (как в SQL-инъекции), но как мне правильно импортировать базу данных? Или мне нужно сначала изменить способ экспорта?

Мы используем phpMyAdmin для экспорта (и импорта) нашей информации.

Ответы [ 2 ]

2 голосов
/ 20 июля 2012

Я понимаю, что это старый пост, но есть также довольно простое решение для поиска / замены.

Если вы используете текстовый редактор, который поддерживает поиск / замену регулярных выражений (я использую Sublime Text 2),Вы можете быстро бросить что-то вместе, чтобы соответствовать шаблону.Вероятно, это не сработает для всех данных, но у меня это сработало в тех случаях, когда у меня возникла эта проблема.

Вы захотите найти:

(\w)'(\w)

и заменить на:

$1\\'$2

Это найдет любой символ слова с одинарной кавычкой и другим символом слова рядом с ним и заменит экранированную версию.В большинстве случаев я имею дело с проблемами в тексте с английскими сокращениями, так что это работает для этого сценария.Это может не сработать в вашем случае.

0 голосов
/ 22 сентября 2010

Я испытал то же самое, я думаю, что это ошибка в функции экспорта phpMyadmin.Я не знаю хорошего способа очистки дампа из-за того, что вы не можете выполнить простой поиск и замену, чтобы избежать кавычек.

Однако существует очень простое решение.Используйте JoomlaPack (теперь он называется Akeeba Backup), когда вам нужно перемещать сайты.Он упаковывает весь сайт и базу данных в красивый аккуратный ZIP-файл и включает в себя быстрый установщик.Не должно занимать больше нескольких минут, чтобы переместить весь сайт и начать работу.

http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606

...