![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
numerovan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: 0 Всего: 2 |
Здравствуйте, у меня такая проблема :
1. имеется страница , на ней расположена кнопка для добавления, создания базы данных, таблиц и записей (dump). 2. пытаюсь сделать чтоб при нажатии кнопки в mysql создалась новыя база данных , которая прописана в dump.sql, а так же всё что находиться внутри файла dump.sql. Через командную строку не хотелось бы делать ... Что вы думаете по этому поводу ? Можно конечно добавить через mysql запрос local infile ... , но мне нужно через скрипт php. Пытался сделать так : считывать построчно строку с dump.sql, предворительно убрав всё не нужные комментарии, но почему-то не получается так . Создание базы не рекомендуют выполнять спомощью mysq_create_db() , добавляется через mysql_query("CREATE DATABASE test"), дальше что то стопориться у меня, ни создание таблиц ни добавления записей в таблицу ... что делать уже не знаю. Подскажите кто знает. Спасибо. Это сообщение отредактировал(а) numerovan - 9.1.2010, 18:09 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
а чем создавался дамп? (как?)
|
|||
|
||||
Avrely |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 15.3.2007 Репутация: нет Всего: 2 |
1) размер файла какой?
2) Если дамп в sql, то загрузи через phpMyAdmin в сжатом варианте выставив время обработки 30 секунд. 3) А что насчет совместимости версий между БД? С какой бд на какую бд переносите? |
|||
|
||||
numerovan |
|
||||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: 0 Всего: 2 |
У меня программа стоир HeidiSQL, это редактор SQL, в ней есть пункт, где она (программа) помогает создать sql файл. После получается файл с расширением .sql, после открытия его в текстовом редакторе или в другом подобном там описывается структура базы данных, т.е. там написанно всё чтобы создать базу , таблицы и значения в таблице. Надеюсь я ясновыразился.
1. размер маленький примерно 5 кб 2. мне нужно путём скрипта открыть сохранёный, допустим baza.sql, файл и всё что внутри прописанно в нём, то чтоб сработало для mySql. Допустим если в сохранёном файле написанно CREATE TABLE mytable(id int), то нужно чтоб оно корректно выполнилось и создалась в базе необходимая таблица. 3. База таже, версия одинаковая. Тут же создал dump и тут же загрузил для проверки работоспособности. |
||||
|
|||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 71 Всего: 315 |
кстати, ведь БД создаётся либо один раз, и в этом случае один раз сделать это не должно вызвать проблемы. в ином случае, когда создаёшь БД для пользователей, тогда это прописывается в скрипт. запрос то тот же, что и при командной строке: create database basename
далее, может быть, эта программа позволяет заливать БД из сохранённого оной файла в частносте syphex очень даже успешно сохраняет и заливает базы в обоих направлениях |
|||
|
||||
numerovan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: 0 Всего: 2 |
программа HeidiSQL хорошо работает в разных направлениях, но в моём случа необходимо чтобы php решил заливку dump-a и вообще возможно ли такое ... Предворительно я подумал и решил построчно считывать строку с сохранёного файла и запускать строку(команду) путём MYSQL_QUERY();, не получилось, хотя сомаже программа HeidiSQL создала этот файл для дальнейшей работы. Пытался сделать так: в файле .txt вписать пару комманд, считать строчки и выполнить через MYSQL_QUERY(); снова ни чего не получилось, после начал считывать весь файл в 1-у строчку, то же не получилось... Вот и думаю в чём проблема ... Я конечно бы мог спокойно в скрипте прописать нужное, типо : создать базу, таблицу и ввести нужно, но если понадобиться базу поменять , допустим не 1 таблица и не 10 значений, а 10 таблиц и в каждой по 100 значений , тут уже будет проблема. Поэтому нужен скрипт , каторый обработает запросы для mysql через отдельный , сохранёный файл. |
|||
|
||||
Simpliest |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 625 Регистрация: 1.9.2009 Репутация: 1 Всего: 3 |
у всех этих "не получилось"(выше) есть вполне конкретная причина. И эта причина оставляет следы, а именно - сообщение об ошибке. И надо не рассказывать на форуме, что "не получилось", а взять конкретную ошибку и разбираться с ней. |
|||
|
||||
numerovan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: 0 Всего: 2 |
ок, считываю построчно запросы для MySQL из файла и с помощью php функций выполняю эти запросы. Ошибка - ни чего нет.
Добавлено через 1 минуту и 46 секунд Вопрос таков : ЕСТЬ DUMP БАЗЫ ДАННЫХ, НУЖНО ЕГО ВЫПОЛНИТЬ ПУТЁМ php-скрипта ... КАК ЭТО ОСУЩЕСТВИТЬ ? |
|||
|
||||
Avrely |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 239 Регистрация: 15.3.2007 Репутация: нет Всего: 2 |
|
|||
|
||||
numerovan |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 549 Регистрация: 1.12.2007 Репутация: 0 Всего: 2 |
Решил проблему, ответ таков (для тех кому эта статья может помочь) :
1. в dump-е нужно программно или в ручную удалить двойные ковычки (с названий: базы, таблиц, ячеек) и не нужные комментарии 2. после считывать построчно файл и выполнять с помощью команды mysql_query() 3. когда делал мнемизацию ни чего тоже не получалось, без неё работало . Сами думайте мнемизировать или нет. 4. если захотите просмотреть значения таблиц через sql-редактор, в моём случае через HeidiSQL, то я ни чего не увидил кроме сообщения "НЕТ СОЕДИНЕНИЯ С БАЗОЙ", а так всё работает. 5. база создаётся через php-код, её нужно прописать перед тем как создавать таблицы, явно прописать в коде mysql_query('CREATE DATABASE name'); после выбрать обычными средствами , т.е. mysql_select_db(name); , а не mysql_query("USE name"); Ладно всем удачи, юзайте на здоровье. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "PHP" | |
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |