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

Форум MySQL

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

 

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

вид форума:
Линейный форум Структурный форум

тема: Очистить базу hostip от таблиц PHP-скриптом
 
 автор: kasir   (08.09.2006 в 14:05)   письмо автору
 
 

Нужно очистить базу hostip от таблиц PHP-скриптом!!! как это зделать??? дайте пожалуйсто пример!!!

   
 
 автор: Trianon   (08.09.2006 в 14:36)   письмо автору
 
   для: kasir   (08.09.2006 в 14:05)
 

От таблиц очистить?

<?php
mysql_connect
('хост''пользователь''пароль');
mysql_select_db('hostip');
  
$tables = array();
  
$res mysql_query('show tables');
  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   (08.09.2006 в 19:33)   письмо автору
 
   для: Trianon   (08.09.2006 в 14:36)
 

Trianon пробовал Ваш скирип, но он не работает. Выдаёт ошибку в Вашем скрипте в 6-й строке. Ошибка звучит так:

Fatal error: Cannot use [] for reading in C:\Program Files\Apache Group\Apache2\htdocs\serg\1.php on line...

В чём проблема сам не разобрался, мож Вы знаете?

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

Ок. Перепишите так:

<?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   (08.09.2006 в 19:54)   письмо автору
 
   для: Trianon   (08.09.2006 в 19:42)
 

Добавил в mysql_connect():

mysql_connect($dblocation, $dbuser)

теперь выдаёт такую ошибку:

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

   
 
 автор: kasir   (08.09.2006 в 19:55)   письмо автору
 
   для: kasir   (08.09.2006 в 19:54)
 

Может попробовать что-то в стиле $query??

   
 
 автор: Trianon   (08.09.2006 в 19:58)   письмо автору
 
   для: kasir   (08.09.2006 в 19:54)
 

Вы что-то напутали. В моем скрипте нету 23 строки.

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

Ой извените 23-я строка имелась введу как в вашем скрипте 1-я

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

Забыл напомнить что mysql_connec() произходит в самом начале моего скрипта.... может он здесь ненужен только функция для удаления таблиц из базы???

   
 
 автор: 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
Проверяйте параметры подключения к серверу и БД .
Явно ошибка там. У меня скрипт все таблицы вытер мгновенно.

   
 
 автор: 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 сроку

   
 
 автор: 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: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>";

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

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

   
 
 автор: 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:43)   письмо автору
 
   для: kasir   (08.09.2006 в 20:33)
 

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


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

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

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

   
 
 автор: 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>")) ;  
  }  
?>  

   
Rambler's Top100
вверх

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