|
|
|
| Я начинающий, не знаю даже как ввести в базу дамп, а также как выгрузить базу (сделать дамп). | |
|
|
|
|
автор: cheops (из кафе) (29.03.2006 в 13:13) |
|
|
для: Геннадий
(29.03.2006 в 08:40)
| | Дело где происходит? На вашей локальной машине или на сервере?
Если на локальной машине, то можно создать дамп при помощи утилиты mysqldump, которая находится в C:/mysql/bin
mysqldump -u root base > base.sql
|
где, base - имя базы данных, а файл base.sql - получаемый дамп. Для того, чтобы его потом развернуть необходимо выполнить команду
mysql -u root base < base.sql
|
| |
|
|
|
|
|
|
|
для: cheops (из кафе)
(29.03.2006 в 13:13)
| | Спасибо. А нельзя ли делать это в коде PHP и на сервере | |
|
|
|
|
|
|
|
для: Геннадий
(30.03.2006 в 09:30)
| | Можно:
$mysql=mysql_connect($server,$user,$pass);
mysql_query($ZAPROS,$mysql);
mysql_close($mysql);
Где $ZAPROS-строка, передоваемая mysql на выполнение.
$server=имя сервера
$user=user mysql
$pass=пароль mysql | |
|
|
|
|
|
|
|
для: ano360
(30.03.2006 в 12:05)
| | вот так как раз этого не сделать...
может быть через system() можно... | |
|
|
|
|
|
|
|
для: Геннадий
(30.03.2006 в 09:30)
| | Дамп имеется ввиду? Можно прибегнуть к оператору SELECT ... INTO OUTFILE, с его помощью можно генерировать достаточно провдаподобные дампы
SELECT * INTO OUTFILE 'text.sql'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
LINES STARTING BY 'INSERT INTO tbl VALUES(' TERMINATED BY ');\r\n'
FROM catalogs ORDER BY id_catalog;
|
Только путь к файлу text.sql нужно указывать абсолютный, чтобы вы могли получить к нему доступ. | |
|
|
|
|
|
|
|
для: cheops
(30.03.2006 в 13:29)
| | FIELDS .... ESCAPED BY '\' при этом подразумевается, или его надо явно прописывать?
В руководстве об этом как-то довольно туманно сказано. | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 13:41)
| | А у меня еще вопрос как делать импорт экранированного дампа при включенных magic_quotes? | |
|
|
|
|
|
|
|
для: Loki
(30.03.2006 в 13:46)
| | Чуть подробнее? Имеется в виду, который через <textarea> взят? | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 13:59)
| | Нет... просто я тут делал дамп, а в текстовых полях встречались одинарные кавычки. Сразу возникла мысль заэкранировать их, но остается неясным как они будут импортированы при условии включенных magic_quotes/
1
INSERT INTO table VALUES(NULL, 'текст 'с кавычками') //это, понятное дело, вызовет ошибку
|
2 экранируем
INSERT INTO table VALUES(NULL, 'текст \'с кавычками') //при обычных настройках должно сработать
|
3 при включенных magic_quotes должно вставится
Собственно, пробовать я не стал, ибо - ленив. Но как я понял, грамотно - весь дамп заэкранировать, а при импорте, если включены кавычки, то лишние слеши... но тогда получается первый вариант. Только как на него отреагирует БД я так и не понял. | |
|
|
|
|
|
|
|
для: Loki
(30.03.2006 в 14:19)
| | Если дамп будет взят через <textarea>, то верхний (наносной) слой слэшей нужно будет соскрести конструкцией
if(get_magic_quotes_gpc()) $dump = stripslashes($dump);
|
Если дамп вводится через <input type=file> этого делать не надо.
В mysql дамп попадет в нормальном виде и будет правильно отработан.
Меня смутило выражение "экранированный дамп" . По моему, если это дамп - то он экранирован. А неэкранированный дамп - испорченный дамп.
>но тогда получается первый вариант.
Этого не получится. На входе строка будет такой:
INSERT INTO table VALUES(NULL, \'текст \\\'с кавычками\')
|
| |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 14:31)
| | >Этого не получится. На входе строка будет такой
Короче, надо меньше думать и больше пробовать:) | |
|
|
|
|
|
|
|
для: Loki
(30.03.2006 в 15:01)
| | надо больше думать и больше пробовать:) | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 15:26)
| | на все меня не хватает:) | |
|
|
|
|
|
|
|
для: Trianon
(30.03.2006 в 13:41)
| | Только один обратный слеш не получится применить - нужно экранировать и применять два FIELDS .... ESCAPED BY '\\' - без этой конструкции оператор ведёт себя также. | |
|
|
|
|
|
|
|
для: cheops
(30.03.2006 в 14:47)
| | Конечно, два. Это я опечатался. То есть экранирование MYSQL сам добавит, без подсказок. Это радует :) | |
|
|
|