Forum Webscript.Ru
Программирование => PHP => Тема начата: alex007 от 05 Августа 2003, 00:14:06
-
Привет,
Вот есть часть скрипт:
...
if (!$_FILES[\'backup\'][\'tmp_name\'])
{
echo \'Вы забыли указать файл.\';
}
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 "Поздравляем датабаза востановлена!";
}
...
ошибок не выдает и почемуто не пахает и говорит что датабаза востановлена, хотя на самом деле нет.
Жду Ответов.
С Уважением,
Алекс.
-
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 при каждом запросе соединяется с указанной бд
-
Макс
Спасибо.
-
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++)
Во вторых - отнимать единицу здесь не нужно!
-
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 \'Вы забыли указать файл.\';
}
...
Ругается: 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++)
работает без ошибок, но работу свою не делает.
Жду Ответов.
С Уважением,
Алекс.
-
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 \'Вы забыли указать файл.\';
}
примерно так. Конечно же не проверял
-
не забудь к БД присоединиться после коннекта ([p]mysql_select_db[/p])
-
Макс
Спасибо.
не забудь к БД присоединиться после коннекта (mysql_select_dbphp.net)
У меня это прописано функцией выше.
-
Макс
У меня вылазиет ошибка: Warning: Wrong parameter count for mysql_query()
-
alex007:
Макс
У меня вылазиет ошибка: Warning: Wrong parameter count for mysql_query()
Макс:
пишешь полный бред (грубо, но правда).
Читай хотя бы описания функций в мане перед тем как используешь их:
Тема закрыта, так как продолжать её безсмысленно - автор плохо читает текст с монитора.