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

Форум MySQL

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

 

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

вид форума:
Линейный форум (новые сообщения вниз) Структурный форум

тема: Очистить базу hostip от таблиц PHP-скриптом

Сообщения:  [1-10]   [11-19] 

 
 автор: kasir   (09.09.2006 в 11:44)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:43)
 

Вот Ваш скрипт

<?php  
mysql_connect
('хост''пользователь''пароль') or die( "Cannot connect to server: ".mysql_error()); 
mysql_select_db('hostip')or die( "Cannot select database: ".mysql_error());  
  
  
$tables = array();  
  
$res mysql_query('show tables') or die( "Cannot fetch table list: ".mysql_error());  
  
  while(
$row mysql_fetch_row($res))  
     
$tables[] = $row[0];  
  foreach(
$tables as $table)  //Вот Ваша строка
  
{  
      
$sql ="DROP TABLE $table";  
      echo 
$sql. (mysql_query($sql)? " - table $table deleted<br>" 
         
:(" - failed to delete $table : ".mysql_error()."<br>")) ;  
  }  
?>  

   
 
 автор: kasir   (09.09.2006 в 11:09)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:43)
 

Извените, по ходу я не посмотрел саму базу, оказалось что в ней таблиц небыло, наверно из-за этого Ваш скрип выдаёт ошибку.
Давайте в теме: Как указать хост в запросе рассмотрим как востановить базу.

   
 
 автор: Trianon   (08.09.2006 в 20:43)   письмо автору
 
   для: kasir   (08.09.2006 в 20:33)
 

foreach($tables as $table)
echo "удалено<br>";
{


я такое не писал - это явная ошибка.

   
 
 автор: kasir   (08.09.2006 в 20:33)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:31)
 

<?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";
}
$tables = array(); 
$res = mysql_query('show tables') or die( "Cannot fetch table list: ".mysql_error()); 
while($row = mysql_fetch_row($res)) 
$tables[] = $row[0]; 
foreach($tables as $table) 
echo "Удалено<br>";

  $sql ="DROP TABLE $table"; 
  echo $sql. (mysql_query($sql)? " - table $table deleted<br>"
  :(" - failed to delete $table : ".mysql_error()."<br>")) ; 

exec ("mysql -h 10.1.1.2 -u alex -b hostip < 'C:\Program Files\Apache Group\Apache2\htdocs\serg2\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>";
}
}
?>

   
 
 автор: Trianon   (08.09.2006 в 20:31)   письмо автору
 
   для: kasir   (08.09.2006 в 20:26)
 

показали бы скрипт полностью. гадать неохота.

   
 
 автор: kasir   (08.09.2006 в 20:30)   письмо автору
 
   для: kasir   (08.09.2006 в 20:26)
 

Вот моё стартовое подключение к Базе:

$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>";

   
 
 автор: kasir   (08.09.2006 в 20:26)   письмо автору
 
   для: kasir   (08.09.2006 в 20:18)
 

Убрал 2 первых строки в Вашем втором скрипте.
Теперь в строке:

$res = mysql_query('show tables') or die( "Cannot fetch table list: ".mysql_error()); 

Выдаёт такую ошибку:

Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files\Apache Group\Apache2\htdocs\serg\1.php on line 24

   
 
 автор: kasir   (08.09.2006 в 20:18)   письмо автору
 
   для: Trianon   (08.09.2006 в 20:06)
 

Я <?php за стоку не щитал, тоесть я имел введу первая строка это:

mysql_connect($dblocation, $dbuser)or die( "Cannot connect to server: ".mysql_error());

Но щас попробую Ваш совет убрать 1 и 2 сроку

   
 
 автор: Trianon   (08.09.2006 в 20:08)   письмо автору
 
   для: kasir   (08.09.2006 в 20:04)
 

тогда уберите лишнюю строчку с подключением. Если Вы его уже обеспечили. Если базу уже выбрали, то и вторую строчку уберите. Только учтите, скрипт коварен. Если ошибетесь - таблицы Вам никто назад не вернет.

   
 
 автор: Trianon   (08.09.2006 в 20:06)   письмо автору
 
   для: kasir   (08.09.2006 в 20:00)
 

В первой строке у меня только <?php
Проверяйте параметры подключения к серверу и БД .
Явно ошибка там. У меня скрипт все таблицы вытер мгновенно.

   

Сообщения:  [1-10]   [11-19] 

Форум разработан IT-студией SoftTime
Rambler's Top100
вверх

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