Ты хочешь из консоли вывести или как? Не совсем понятен сам вопрос... Пиши конкретней, что да как (не "сабж", а вопрос в развёрнутый вопрос в самой теме, а не в её названии)... Если я тебя правильно понял, то ты создаёшь таблицу со столбцом tables и хочешь командой show tables заполнить строки этой таблицы в столбце tables? Вот тут скрипт "сварганил" на скорую руку, который обращается к базе и выводит show tables на экран... Code: #!c:/perl/bin/perl use CGI qw(:all); use DBI; use strict; my $db_user_name = 'root'; # Логин в базе my $db_password = 'dfvgbh'; # Пароль my $basename="profpersonal"; my $hosto="localhost"; my $dsn = "DBI:mysql:$basename:$hosto"; my $dbh = DBI->connect($dsn, $db_user_name, $db_password); print "Content-type: text/html\n"; print "Cache-Control: no-store, no-cache\n"; print "Expires: Thu, 01 Jun 2006 18:00:00 GMT\n"; sub send_to_base #Посылает в базу первый, если второй не равен "nr" возвращает двумерный массив из базы. Добавляет две записи в массив журнала - Запрос и ответ { my @return_array=send_to_base_temp($_[0]); my $error_message=$dbh->errstr; return @return_array; } sub send_to_base_temp #Посылает в базу первый, если второй не равен "nr" возвращает двумерный массив из базы. Добавляет две записи в массив журнала - Запрос и ответ { my @temp; my $qwery=$_[0]; my $no_return=$_[1]; my $sth = $dbh->prepare($qwery); my $rv=$sth->execute(); if ($no_return ne "nr") { my $count_row=0; while ( (my @qwery_row=$sth->fetchrow_array())and ($count_row<100000)) { my $count_col=0; while(($count_col<=$#qwery_row) and ($count_col<100)) { $temp[$count_row][$count_col]=$qwery_row[$count_col]; $count_col++; } $count_row++ } return @temp; } } send_to_base('set names cp1251;', 'nr'); my @return_array=send_to_base('show tables;'); my $print_string; for (my$i=0;$i<=$#return_array;$i++) { $print_string.="$return_array[$i][0]<br>"; } print <<END_OF_BEGIN; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="JavaScript" src="/frames.js"></script> <title></title> <meta http-equiv="refresh" content="2; url=/cgi-bin/logout.cgi; target=_top" > </head> <body> $print_string </body> </html> END_OF_BEGIN Под БД и под перл сам подправишь... Требуется DBI + DBD MySQL...
je0n, если тебя интересует возможность вывода запроса SHOW TABLES в файл средствами SQL (что-то типа SELECT ... INTO OUTFILE '...' от пользователя у которого есть file_priv), то это невозможно... Зато ты можешь на том же самом PHP обойти результат этого запроса и построчно записать в файл... Но конструкции вида SELECT * FROM (SHOW TABLES) и прочие - НЕВОЗМОЖНЫ!
Вот вроде довёл до ума... Записывает в файл... Code: #!c:/perl/bin/perl use CGI qw(:all); use DBI; use strict; my $db_user_name = 'root'; # Логин в базе my $db_password = 'dfvgbh'; # Пароль my $basename="profpersonal"; # имя базы my $hosto="localhost"; # Где она my $filename="from_base.txt"; my $dsn = "DBI:mysql:$basename:$hosto"; my $dbh = DBI->connect($dsn, $db_user_name, $db_password); print "Content-type: text/html\n"; print "Cache-Control: no-store, no-cache\n"; print "Expires: Thu, 01 Jun 2006 18:00:00 GMT\n"; sub send_to_base #Посылает в базу первый, если второй не равен "nr" возвращает двумерный массив из базы. Добавляет две записи в массив журнала - Запрос и ответ { my @return_array=send_to_base_temp($_[0]); my $error_message=$dbh->errstr; return @return_array; } sub send_to_base_temp #Посылает в базу первый, если второй не равен "nr" возвращает двумерный массив из базы. Добавляет две записи в массив журнала - Запрос и ответ { my @temp; my $qwery=$_[0]; my $no_return=$_[1]; my $sth = $dbh->prepare($qwery); my $rv=$sth->execute(); if ($no_return ne "nr") { my $count_row=0; while ( (my @qwery_row=$sth->fetchrow_array())and ($count_row<100000)) { my $count_col=0; while(($count_col<=$#qwery_row) and ($count_col<100)) { $temp[$count_row][$count_col]=$qwery_row[$count_col]; $count_col++; } $count_row++ } return @temp; } } send_to_base('set names cp1251;', 'nr'); my @return_array=send_to_base('show tables;'); my $print_string; for (my$i=0;$i<=$#return_array;$i++) { $print_string.="$return_array[$i][0]<br>"; } #------------------------------------------------ Запись в файл open (FILEZ2, ">>$filename"); for (my$i=0;$i<=$#return_array;$i++) { print FILEZ2 $return_array[$i][0],"\n"; } close (FILEZ2); #----------------------------------------------- Конец Запись в файл print <<END_OF_BEGIN; <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <script language="JavaScript" src="/frames.js"></script> <title></title> <meta http-equiv="refresh" content="2; url=/cgi-bin/logout.cgi; target=_top" > </head> <body> $print_string </body> </html> END_OF_BEGIN Если надо в таблицу - скажите в какую или новую...