Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

32.8. Списки потоков записи на сервере

Очень часто программистам необходимо оценить ситуацию и с учетом полученной оценки выдать тот или иной результат либо просто совершить те или иные действия. Под оценкой действующей ситуаций понимается возможность распознать базы данных, полей в этих базах данных и таблиц соответственно на работающем сервере. Эту задачу решают функции, описанные ниже:

• mysql_list_dbs(),

• mysql__list_fields(),

• mysql_list_tables().

Функция mysql_list_dbs() позволяет получить список всех доступных баз данных на MySQL-сервере. Чтобы задать параметры данной функции и получить необходимый результат, достаточно указать только идентификатор связи. Рассмотрим синтаксис функции

int mysql_list_dbs( [int link_identifier] )

Функция mysql_list_dbs() позволяет возвратить указатель результата, содержащий доступные данные на сервере MySQL. Чтобы получить промежуточный результат указателя, необходимо воспользоваться функцией mysql_tablename().

$link=mysql_connect ( 'localhost' , 'myname', 'secret');

$db_list = mysql_list_dbs ($link);

while($row = mysql_fetch_object ($db_list) ) {

    echo $row->Database."\n";

}

Результат работы данного скрипта будет

database1

database2

database3

Данный код также работает с функцией mysql_fetch_row() и другими ранее упомянутыми функциями.

Функция mysql_list_fields() позволяет получать список полей результата. Ее синтаксис:

int mysql_list_fields (string database_name, string table_name [, int link_identifier] )

Функция mysql_list_fields() имеет информацию относительно заданного параметра table_name.

Функция возвращает положительное целое число. В случае возникновения ошибки функция возвращает —1. Строка, описывающая ошибку, будет помещена в переменную $phperrmsg даже в случае вызова функции со знаком @ (@mysql()) эта ошибка будет также распечатана.

Рассмотрим пример:

$link = mysql_connect('localhost', 'myname', 'secret');

$fields = mysql_list_fields("database1", "table1", $link);

$columns = mysql_num_fields($fields);

for (Si = 0; Si < $columns; Si++) {

    echo mysql_field_name ($fields, Si) . "\n";

}

Результатом работы данного скрипта будут следующие строки:

field1

field2

field3

Чтобы получить название таблицы, необходимо воспользоваться функцией mysql_list_table(). Ее синтаксис:

string mysql_field_table (int result, int field_offset)

Функция возвращает строку с именем таблицы.

Описанные функции: mysql_list_dbs(), mysql_list_fields(), mysql_list_table() работают в PHP 3 и PHP 4.

<< Предыдущий параграф Следующий параграф >>
Оглавление