|
|
|
| Народ кто компетентен подскажите как решить проблему.
В чем заморочка: есть скрипт работающий с БД MySQL нужен пример скрипта php который может загрузить дамп на MySQL при первом запуске скрипта, типа install.php Работать он должен так, при запуске install.php юзер вводит - имя, пользователя, пароль БД MySQL, а install.php записывает данные подключения к маслу в файл conect.php и заливает дамп из txt файла непосредственно на масла.
Скиньте плиз пример кода. | |
|
|
|
|
|
|
|
|
для: 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
------------------------------------------------------------------ | |
|
|
|
|
|
|
|
для: Legenda
(17.09.2008 в 18:14)
| | >Вот есть пример кода, данный скрипт делает половину работы, записывает данные подключения к MySQL в файл connect.php но дамп к сожалению не грузит на масла.
Потрудитесь выражать свои мысли по-человечески. Какое еще в задницу масло?! | |
|
|
|
|
|
|
|
для: Legenda
(17.09.2008 в 18:14)
| | >но дамп к сожалению не грузит
Вв в своём коде сами то хоть, что-то понимаете? Я например нет.
Какой вы дамп хотите записать то?
SELECT * FROM pols - единственный нашел запрос к БД, который явно не к чему по вашему вопросу.
P.S. Сформулируйте вопрос понятнее.
Что вы имеете ввиду под понятием дамп? | |
|
|
|
|
|
|
|
для: 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 "Не правильно, дядя Фёдор=)";}
}
?>
|
| |
|
|
|
|
|
|
|
для: Legenda
(18.09.2008 в 09:39)
| | Если вам необходимо обрабатывать дампы, которые вы же и создаете, тогда все более менее просто. Считываете строку за строкой , запрос за запросом, и исполняете.
Если вам необходимо обрабатывать вообще любые дампы- задача не из самых легких.
Придется самому анализировать формат дампа (как минимум с целью отделить один запрос от другого)
Поискать решения можно например в исходниках phpMyAdmin. | |
|
|
|
|
|
|
|
для: Trianon
(18.09.2008 в 10:24)
| | Необходимо ЕДИНОРАЗОВО залить дамп на сервер при первой установке скрипта.
При этом готовый дамп берется из файла.
Вот это хочется реализовать, но к сожалению на хватает квалификации... | |
|
|
|
|
|
|
|
для: Legenda
(18.09.2008 в 10:41)
| | Чтобы ЕДИНОРАЗОВО залить дамп, никаких скриптов писать не требуется.
Нужно просто воспользоваться одним из доступных клиентов mysql или phpMyAdmin. | |
|
|
|
|
|
|
|
для: Trianon
(18.09.2008 в 14:22)
| | В том то и вся загвоздка, что хочется сделать установку через скрипт. | |
|
|
|
|
|
|
|
для: Legenda
(18.09.2008 в 15:11)
| | см. (18.09.2008 в 10:24) | |
|
|
|