Автор Тема: Востановление MySql  (Прочитано 3468 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Востановление MySql
« : 05 Августа 2003, 00:14:06 »
Привет,

Вот есть часть скрипт:


...
if (!
$_FILES[\'backup\'][\'tmp_name\']) 
{
echo \'<font color="#ff0000">Вы забыли указать файл.</font>\';
}
else
{
set_time_limit(180);
$fp = @fopen($_FILES[\'backup\'][\'tmp_name\'], \'r\');
$q= explode(";#%%\\n",$fp);
for ($i=0;$i < count($q)-1;$i++) 
{
mysql_db_query($dbname,$q[$i],$conn) or die(mysql_error());
}
echo "Поздравляем датабаза востановлена!";
}
...


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

Жду Ответов.

С Уважением,
Алекс.
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Востановление MySql
« Ответ #1 : 05 Августа 2003, 01:25:27 »
alex007
Цитировать
$fp = @fopen($_FILES[\'backup\'][\'tmp_name\'], \'r\');
$q= explode(";#%%\\n",$fp);
замени на
$fp = file_get_contents($_FILES[\'backup\'][\'tmp_name\']);
(php 4.3.0 и выше)

PS
точно не помню, но по-моему временные файлы нельзя сразу считывать и сначало нужно скопировать в свою папку. Так что, если пример выше не сработает - сделай сначало копирование ([p]move_uploaded_file[/p])

PPS
лучше юзай mysql_query. Насколько я знаю mysql_db_query при каждом запросе соединяется с указанной бд
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Востановление MySql
« Ответ #2 : 05 Августа 2003, 20:23:59 »
Макс
Спасибо.
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Востановление MySql
« Ответ #3 : 05 Августа 2003, 21:07:45 »
Цитировать
alex007:
$fp = @fopen($_FILES[\'backup\'][\'tmp_name\'], \'r\');
$q= explode(";#%%\\n",$fp);

Во первых - $fp в данном случае не текст файла, а указатель на файл. Сначала нужно прочитать файл $file_content=fread($fp, file_size($_FILES[\'backup\'][\'tmp_name\']));

Цитировать
alex007:
for ($i=0;$i < count($q)-1;$i++)

Во вторых - отнимать единицу здесь не нужно!
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Востановление MySql
« Ответ #4 : 06 Августа 2003, 00:38:07 »
Tronyx
Спасибо.

Вот немного переделал:

$uploaddir 
= \'/path/to/temp/\';
... 
if (move_uploaded_file($_FILES[\'backup\'][\'tmp_name\'], $uploaddir . $_FILES[\'backup\'][\'name\'])) {
	
set_time_limit(180); 

	
$filename = $uploaddir.$_FILES[\'backup\'][\'name\'];
	
function file_get_contents($filename) {
   $fd = fopen("$filename", "rb");
   $content = fread($fd, filesize($filename));
  fclose($fd);
   return $content;
}
$q= explode(";#%%\\n",$content); 
for ($i=0;$i < count($q);$i++) 

mysql_query($dbname,$q[$i], $db_conn) or die(mysql_error()); 

	
echo "Поздравляем датабаза востановлена!"; 
 
} else {

   echo \'<font color="#ff0000">Вы забыли указать файл.</font>\'; 
  
}
...



Ругается: Warning: Wrong parameter count for mysql_query()
в строке
Цитировать
mysql_query($dbname,$q[$i], $conn) or die(mysql_error());


добавляю ту еденицу:
for ($i=0;$i count($q)-1;$i++) 

работает без ошибок, но работу свою не делает.

Жду Ответов.

С Уважением,
Алекс.
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Востановление MySql
« Ответ #5 : 06 Августа 2003, 01:19:51 »
alex007
пишешь полный бред (грубо, но правда).
Читай хотя бы описания функций в мане перед тем как используешь их:

if (!function_exists(\'file_get_contents\')) {
   function file_get_contents($file, $use_include_path = false) {
      $fp = fopen($file, "rb", $use_include_path);
      $content = fread($fp, filesize($file));
      fclose($fp);
      return $content;
   }
}

if (move_uploaded_file($_FILES[\'backup\'][\'tmp_name\'],
$uploaddir . $_FILES[\'backup\'][\'name\'])) { 
       set_time_limit(180); 
       $filename = $uploaddir.$_FILES[\'backup\'][\'name\']; 
    $content = file_get_contents($filename);
    $q= explode(";#%%\\n",$content);
    for ($i=0;$i < count($q);$i++)  { 
       mysql_query($q[$i], $db_conn) or die(mysql_error()); 
    } 
    echo "Поздравляем датабаза востановлена!"; 
} else { 
    echo \'<font color="#ff0000">Вы забыли указать файл.</font>\'; 
 


примерно так. Конечно же не проверял
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Востановление MySql
« Ответ #6 : 06 Августа 2003, 01:25:21 »
не забудь к БД присоединиться после коннекта ([p]mysql_select_db[/p])
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Востановление MySql
« Ответ #7 : 06 Августа 2003, 19:57:12 »
Макс
Спасибо.

Цитировать
не забудь к БД присоединиться после коннекта (mysql_select_dbphp.net)

У меня это прописано функцией выше.
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн alex007

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 835
  • +0/-0
  • 0
    • Просмотр профиля
    • http://www.russians-in-london.co.uk/
Востановление MySql
« Ответ #8 : 06 Августа 2003, 20:37:25 »
Макс
У меня вылазиет ошибка: Warning: Wrong parameter count for mysql_query()
Русские-в-Лондоне. Как они там? Интересно. Инфо (FAQ), Форум и Магазин

Оффлайн Tronyx

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 826
  • +0/-0
  • 2
    • Просмотр профиля
Востановление MySql
« Ответ #9 : 06 Августа 2003, 21:23:37 »
Цитировать
alex007:
Макс
У меня вылазиет ошибка: Warning: Wrong parameter count for mysql_query()

Цитировать
Макс:
пишешь полный бред (грубо, но правда).
Читай хотя бы описания функций в мане перед тем как используешь их:


Тема закрыта, так как продолжать её безсмысленно - автор плохо читает текст с монитора.
С уважением, Владимир Гончаренко - COPI# 93
Ролевая онлайн игра

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28