|
|
|
| Есть вот такой скрип
<?php
$dblocation = "10.1.1.2";
$dbname = "hostip";
$dbuser = "alex";
$dbpasswd = "";
$dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
if (!$dbcnx)
{
exit("<P>В настоящий момент сервер базы данных недоступен, поэтому корректно отображение страницы невозможно.</P>");
}
if (!@mysql_select_db($dbname, $dbcnx))
{
exit("<P>В настоящий момент база данных недоступна, поэтому корректное отображение страницы невозможно.</P>");
}
echo "Работает<br>";
$newfile = '';
$file = 'C:\Program Files\Apache Group\Apache2\htdocs\serg\hostip_current.sql.gz';
$newfile = 'C:\Program Files\Apache Group\Apache2\htdocs\serg2\hostip_current.sql.gz';
if (!copy($file, $newfile))
{
echo "Не удалось скопировать $file... \n";
}
exec ("mysql -h 10.1.1.2 -b hostip -u alex < '/Users/alex/Sites/sergey/hostip_current.sql'");
exit;
$result = mysql_list_tables($dbname);
while ($row = mysql_fetch_row($result))
{
if ($row[0] <> "cityByCountry" or $row[0] <> "countries")
{
mysql_query("ALTER TABLE `hostip`.`$row[0]` DROP COLUMN `cron`
, DROP INDEX `kCountry`
, DROP INDEX `kCity`
, DROP INDEX `kb`
, DROP INDEX `kc`
, DROP INDEX `kcron`");
echo $row[0]." OK<br>";
}
}
?>
|
Перед Дампом мне нужно вписать функцию котораю очистит базу от всех таблиц!
Прошу Вас о помощи.. у самого что-то не получается=( | |
|
|
|
|
|
|
|
для: kasir
(09.09.2006 в 13:24)
| | А вы прямо в дамп запишите операторы DROP TABLE перед каждым оператором CREATE TABLE. | |
|
|
|
|
|
|
|
для: cheops
(09.09.2006 в 14:43)
| | Мне нужно это зделать скриптом!!! | |
|
|
|
|
|
|
|
для: kasir
(09.09.2006 в 15:02)
| | Долго думая, написал функцию удаление таблиц так:
1 <?php
2 $result = mysql_list_tables ("SHOW TABLES");
3 while($res = mysql_fetch_row($datap[0]))
4 {
5 mysql_query("DROP TABLE $data[0]");
6 echo "DROP TABLE $data[0] OK<br>";
7 }
?>
|
Сработало, вывело в браузере что все таблицы удалны.
Подставил эту функцию в скрипт:
1 <?php
2 $dblocation = "10.1.1.2";
3 $dbname = "hostip";
4 $dbuser = "alex";
5 $dbpasswd = "";
6 $dbcnx = @mysql_connect($dblocation,$dbuser,$dbpasswd);
7 if (!$dbcnx)
8 {
9 exit("<P>В настоящий момент сервер базы данных недоступен, поэтому корректно отображение страницы не возможно.<P>");
10 }
11 if (!@mysql_select_db($dbname, $dbcnx))
12 {
13 exit("<P>В настоящий момент база данных недоступна, поэтому корректное отображение страницы невозможно.</P>");
14 }
15 echo "Работает<br>";
16 $newfile = '';
17 $file = 'C:\Program Files\Apache Group\Apache2\htdocs\serg\hostip_current.sql.gz';
18 $newfile = 'C:\Program Files\Apache Group\Apache2\htdocs\serg2\hostip_current.sql.gz';
19 if (!copy($file, $newfile))
20 {
21 echo "Не удалось скопировать $file... \n";
22 }
23 $result = mysql_list_tables ("SHOW TABLES");
24 while ($res = mysql_fetch_row($data[0]))
25 {
26 mysql_query("DROP TABLE $data[0]");
27 echo "DROP TABLE $data[0] OK<br>";
28 }
29 exec ("mysql -h 10.1.1.2 -b hostip -u alex < '/Users/alex/Sites/sergey/hostip_current.sql'");
30 $result = mysql_list_tables($dbname);
31 while ($row = mysql_fetch_row($result))
32 {
33 if ($row[0] <> "cityByCountry" or $row[0] <> "countries")
34 {
35 mysql_query("ALTER TABLE `hostip`.`$row[0]` DROP COLUMN `cron`
36 , DROP INDEX `kCountry`
37 , DROP INDEX `kCity`
38 , DROP INDEX `kb`
39 , DROP INDEX `kc`
40 , DROP INDEX `kcron`");
41
42 echo $row[0]." OK<br>";
43 }
44 }
45 ?>
|
Выдаёт ошибку:
Warning: mysql_fetch_row(): supplied argument is not a valid MySQL result resource in C:\Program Files\Apache Group\Apache2\htdocs\serg\1.php on line 24
В чём проблема непойму. | |
|
|
|
|
|
|
|
для: kasir
(09.09.2006 в 15:59)
| | Может это из-за того что я удалил таблицы с базы и невостанавливая их я запустил скрипт?
Или что-то с Дампом? по идеи скрипта он должен удалить таблицы с базы и дампом востановить, а дальше скрипт должен удалить индексы с таблиц. | |
|
|
|
|
|
|
|
для: kasir
(09.09.2006 в 15:59)
| |
<?php //1
$result = mysql_list_tables ("SHOW TABLES"); //2
while($res = mysql_fetch_row($datap[0])) //3
{ //4
mysql_query("DROP TABLE $data[0]"); //5
echo "DROP TABLE $data[0] OK<br>"; //6
} //7
?>
| откуда в третьей строке возьмется нечто названное $datap , а в пятой - $data?
<?php //1
$result = mysql_list_tables ("SHOW TABLES"); //2
if($result === false) //3
echo "Cannot fetch table list: " . mysql_error(); //4
else //5
while($data = mysql_fetch_row($result)) //6
{ //7
$tabname = $data[0]; //8
$res = mysql_query("DROP TABLE $tabname"); //9
if($res) echo "table $tabname deleted<br>"; //10
else
echo "Cannot delete table $tablename: " . mysql_error() ."<br>"; //11
} //12
?>
|
| |
|
|
|
|
|
|
|
для: Trianon
(09.09.2006 в 17:42)
| | Извените $datap это опечатка, я имел введу $data =)) | |
|
|
|