Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите код для загрузки дампа в MySQL через скрипт php
 
 автор: Legenda   (15.09.2008 в 15:44)   письмо автору
 
 

Народ кто компетентен подскажите как решить проблему.

В чем заморочка: есть скрипт работающий с БД MySQL нужен пример скрипта php который может загрузить дамп на MySQL при первом запуске скрипта, типа install.php Работать он должен так, при запуске install.php юзер вводит - имя, пользователя, пароль БД MySQL, а install.php записывает данные подключения к маслу в файл conect.php и заливает дамп из txt файла непосредственно на масла.

Скиньте плиз пример кода.

  Ответить  
 
 автор: cheops   (16.09.2008 в 12:15)   письмо автору
 
   для: Legenda   (15.09.2008 в 15:44)
 

Возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=3&id_theme=5257.

  Ответить  
 
 автор: Legenda   (17.09.2008 в 18:14)   письмо автору
 
   для: cheops   (16.09.2008 в 12:15)
 

Нет не совсем то что нужно.
Вот есть пример кода, данный скрипт делает половину работы, записывает данные подключения к MySQL в файл connect.php но дамп к сожалению не грузит на масла. может кто знающий подкорректирует?


<form action="install.php" method="post"> 
Сервер:<input type="text" name="server"><br> 
Логин:<input type="text" name="login"><br> 
Пароль:<input type="password" name="pass"><br> 
База:<input type="text" name="db"><br> 
<input type="submit" name="go" value="GO!">
</form> 
<?php 

require_once('connect.php'); 

$server $_POST['server'];
$login $_POST['login'];
$pass $_POST['pass'];
$db $_POST['db'];

if(
$server!="")
{
$connectInfo="connect.php"
$dumpFile="dump.txt"
if(
mysql_connect ($server $login $pass )) 
    { 
    if(
mysql_select_db ($db)) 
        { 
            if(
$f=fopen($connectInfo"a")) 
            { 
                if(
fwrite($f,"<?php \n\$hostname = \"".$server."\"; \n\$database = \"".$db."\"; \n\$username = \"".$login."\"; \n\$password = \"".$pass."\"; \n\$connect = mysql_pconnect(\$hostname, \$username, \$password) or trigger_error(mysql_error(),E_USER_ERROR); \nmysql_select_db(\$database, \$connect); \n\$ru = mysql_query (\"SELECT * FROM pols\") or die(mysql_error()); \n\$rru = mysql_fetch_array(\$ru); \n?>\n"))
                    { 
                        echo 
"<br>Записали=)"
                    } 
                    else {echo 
"Что-то не пишется, батенька=)";} 
                
fclose($f);                 
            } 
            else {echo 
"Файл не открывается и не создается, каналья!";} 
            if(
$fd=fopen($dumpFile"r"))
            {
                
$dump=$fgets($fd); 
                
fclose($fd); 
            } 
            if(
mysql_query($dump)) 
            { 
            echo 
"Выполнили!"
            } 
            else { echo 
"Не получилось выполнить содержимое дамп файла!";} 
        } 
    else { echo 
"Не правильное название бд";} 
    } 
else { echo 
"Не правильно, дядя Фёдор=)";} 
}
?>


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

Выдает такое:
------------------------------------------------------------------
Записали=)
Fatal error: Function name must be a string in Z:\home\tester\www\install.php on line 37
------------------------------------------------------------------

  Ответить  
 
 автор: Trianon   (17.09.2008 в 22:40)   письмо автору
 
   для: Legenda   (17.09.2008 в 18:14)
 

>Вот есть пример кода, данный скрипт делает половину работы, записывает данные подключения к MySQL в файл connect.php но дамп к сожалению не грузит на масла.

Потрудитесь выражать свои мысли по-человечески. Какое еще в задницу масло?!

  Ответить  
 
 автор: AcidTrash   (17.09.2008 в 23:35)   письмо автору
 
   для: Legenda   (17.09.2008 в 18:14)
 

>но дамп к сожалению не грузит
Вв в своём коде сами то хоть, что-то понимаете? Я например нет.
Какой вы дамп хотите записать то?
SELECT * FROM pols - единственный нашел запрос к БД, который явно не к чему по вашему вопросу.

P.S. Сформулируйте вопрос понятнее.
Что вы имеете ввиду под понятием дамп?

  Ответить  
 
 автор: Legenda   (18.09.2008 в 09:39)   письмо автору
 
   для: AcidTrash   (17.09.2008 в 23:35)
 

Поясняю, есть текстовый файл с дампом базы данных,
Его требуется залить на сервер в базу данных MySQL

Задачи скрипта install.php

1 - Записать данные подключения к БД MySQL в файл connect.php (уже реализовано в файле),
2 - Открыть файл с существующим дампом MySQL назовем его dump.txt прочитать файл ($dumpFile="dump.txt"; ), затем скопировать все содержимое файла на сервер в БД MySQL
3 - Выдать сообщение об удачной/неудачной заливке дампа на сервер.

> Что вы имеете ввиду под понятием дамп?
Под понятием дамп, я имею ввиду дамп БД MySQL записанный в текстовый файл.
Ежели его скопировать в буфер обмена, зайти в phpMyAdmin вкладка SQL скопировать в окно и нажать ОК - то в базе данных появятся таблицы с необходимыми данными.

Вроде понятно выразился.

А по вопросу этой строчки:

if(fwrite($f,"<?php \n\$hostname = \"".$server."\"; \n\$database = \"".$db."\"; \n\$username = \"".$login."\"; \n\$password = \"".$pass."\"; \n\$connect = mysql_pconnect(\$hostname, \$username, \$password) or trigger_error(mysql_error(),E_USER_ERROR); \nmysql_select_db(\$database, \$connect); \n\$ru = mysql_query (\"SELECT * FROM pols\") or die(mysql_error()); \n\$rru = mysql_fetch_array(\$ru); \n?>\n")) 


Так это данные которые необходимо записать в файл connect.php - это то как раз работает без проблем.

Та в коде была ошибочка, вот код с исправленной ошибкой:


<form action="install.php" method="post"> 
Сервер:<input type="text" name="server"><br> 
Логин:<input type="text" name="login"><br> 
Пароль:<input type="password" name="pass"><br> 
База:<input type="text" name="db"><br> 
<input type="submit" name="go" value="GO!">
</form> 
<?php 

require_once('connect.php'); 

$server $_POST['server'];
$login $_POST['login'];
$pass $_POST['pass'];
$db $_POST['db'];

if(
$server!="")
{
$connectInfo="connect.php"
$dumpFile="dump.txt"
if(
mysql_connect ($server $login $pass )) 
    { 
    if(
mysql_select_db ($db)) 
        { 
            if(
$f=fopen($connectInfo"a")) 
            { 
                if(
fwrite($f,"<?php \n\$hostname = \"".$server."\"; \n\$database = \"".$db."\"; \n\$username = \"".$login."\"; \n\$password = \"".$pass."\"; \n\$connect = mysql_pconnect(\$hostname, \$username, \$password) or trigger_error(mysql_error(),E_USER_ERROR); \nmysql_select_db(\$database, \$connect); \n\$ru = mysql_query (\"SELECT * FROM pols\") or die(mysql_error()); \n\$rru = mysql_fetch_array(\$ru); \n?>\n"))
                    { 
                        echo 
"<br>Записали=)"
                    } 
                    else {echo 
"Что-то не пишется, батенька=)";} 
                
fclose($f);                 
            } 
            else {echo 
"Файл не открывается и не создается, каналья!";} 
            if(
$fd=fopen($dumpFile"r"))
            {
                
$dump=fgets($fd); 
                
fclose($fd); 
            } 
            if(
mysql_query($dump)) 
            { 
            echo 
"Выполнили!"
            } 
            else { echo 
"Не получилось выполнить содержимое дамп файла!";} 
        } 
    else { echo 
"Не правильное название бд";} 
    } 
else { echo 
"Не правильно, дядя Фёдор=)";} 
}
?>

  Ответить  
 
 автор: Trianon   (18.09.2008 в 10:24)   письмо автору
 
   для: Legenda   (18.09.2008 в 09:39)
 

Если вам необходимо обрабатывать дампы, которые вы же и создаете, тогда все более менее просто. Считываете строку за строкой , запрос за запросом, и исполняете.
Если вам необходимо обрабатывать вообще любые дампы- задача не из самых легких.
Придется самому анализировать формат дампа (как минимум с целью отделить один запрос от другого)
Поискать решения можно например в исходниках phpMyAdmin.

  Ответить  
 
 автор: Legenda   (18.09.2008 в 10:41)   письмо автору
 
   для: Trianon   (18.09.2008 в 10:24)
 

Необходимо ЕДИНОРАЗОВО залить дамп на сервер при первой установке скрипта.
При этом готовый дамп берется из файла.
Вот это хочется реализовать, но к сожалению на хватает квалификации...

  Ответить  
 
 автор: Trianon   (18.09.2008 в 14:22)   письмо автору
 
   для: Legenda   (18.09.2008 в 10:41)
 

Чтобы ЕДИНОРАЗОВО залить дамп, никаких скриптов писать не требуется.
Нужно просто воспользоваться одним из доступных клиентов mysql или phpMyAdmin.

  Ответить  
 
 автор: Legenda   (18.09.2008 в 15:11)   письмо автору
 
   для: Trianon   (18.09.2008 в 14:22)
 

В том то и вся загвоздка, что хочется сделать установку через скрипт.

  Ответить  
 
 автор: Trianon   (18.09.2008 в 18:23)   письмо автору
 
   для: Legenda   (18.09.2008 в 15:11)
 

см. (18.09.2008 в 10:24)

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования