mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fieldsВозвращает список колонок таблицы

Описание

resource mysql_list_fields ( string $database_name , string $table_name [, resource $link_identifier = NULL ] )

Возвращает информацию о таблице с переданным именем.

Эта функция устарела. Вместо нее рекомендуется использовать mysql_query() с SQL-запросом SHOW COLUMNS FROM table [LIKE 'name'].

Список параметров

database_name

Имя опрашиваемой базы данных.

table_name

Имя опрашиваемой таблицы.

link_identifier

Соединение MySQL. Если идентификатор соединения не был указан, используется последнее соединение, открытое mysql_connect(). Если такое соединение не было найдено, функция попытается создать таковое, как если бы mysql_connect() была вызвана без параметров. Если соединение не было найдено и не смогло быть создано, генерируется ошибка уровня E_WARNING.

Возвращаемые значения

Дескриптор результата (resource) в случае успеха, или FALSE в случае ошибки.

Возвращаемый результат может быть обработан с помощью следующих функций: mysql_field_flags(), mysql_field_len(), mysql_field_name() и mysql_field_type().

Примеры

Пример #1 Пример использования mysql_list_fields()

<?php
$result 
mysql_query("SHOW COLUMNS FROM sometable");
if (!
$result) {
    echo 
'Ошибка при выполнении запроса: ' mysql_error();
    exit;
}
if (
mysql_num_rows($result) > 0) {
    while (
$row mysql_fetch_assoc($result)) {
        
print_r($row);
    }
}
?>

Результатом выполнения данного примера будет что-то подобное:

Array
(
    [Field] => id
    [Type] => int(7)
    [Null] =>
    [Key] => PRI
    [Default] =>
    [Extra] => auto_increment
)
Array
(
    [Field] => email
    [Type] => varchar(100)
    [Null] =>
    [Key] =>
    [Default] =>
    [Extra] =>
)

Примечания

Замечание:

Для обратной совместимости может быть использован следующий устаревший псевдоним: mysql_listfields()

Смотрите также

  • mysql_field_flags() - Возвращает флаги, связанные с указанным полем результата запроса
  • mysql_info() - Возвращает информацию о последнем запросе

Коментарии

If you're willing to use a lot of functions to get a little information about fields in a table, this function is for you.  If you just want to get all the information you can find, you can use this:

<?php

// Taken from: http://ca.php.net/manual/en/function.mysql-field-flags.php
// Original by: amir at scrounch dot com
// Returns the name of the fields in the primary key for a table.
// Also keeps the fields in KEY order.  Handy.
function getPrimaryKeyOf($table) { 
 
$keys = Array();

 
$query sprintf("SHOW KEYS FROM `%s`"$table);
 
$result mysql_query($query) or die(mysql_error());

  while (
$row mysql_fetch_assoc($result)) {
    if ( 
$row['Key_name'] == 'PRIMARY' )
     
$keys[$row['Seq_in_index'] - 1] = $row['Column_name'];
  }

  return 
$keys;
}

// Returns a bunch of information about a table...
// The name of the auto-increment field, if any, fields in the
// primary key (using the function above), and all information
// about all fields.
function getTableInformationOf($table) {
 
$information = array(
     
"auto"    => "",
     
"primary" => array(),
     
"fields"  => array()
    );

 
$information['primary'] = $this->getPrimaryKeyOf($table);

 
$result mysql_query("DESC `$table`");
  while ( 
$field mysql_fetch_assoc($result) ) {
   
$information['fields'][] = $field;
    if ( 
$field['Extra'] == "auto_increment" )
     
$information['auto'] = $field['Field'];
  }

  return 
$information;
}

?>
2003-11-13 15:40:58
http://php5.kiev.ua/manual/ru/function.mysql-list-fields.html
To make an array containing the names of a column from a table, you use the following simple script: (Note: using table1 with three columns)

<?php
$qColumnNames 
mysql_query("SHOW COLUMNS FROM table1",$db) or die("mysql error");
$numColumns mysql_num_rows($qColumnNames);
$x 0;
while (
$x $numColumns)
{
   
$colname mysql_fetch_row($qColumnNames);
   
$col[$colname[0]] = $colname[0];
   
$x++;
}

print_r($col);

/* it will have the following output
Array (
[firstcolumn] => firstcolumn
[secondcolumn] => secondcolumn
[thirdcolumn] => thirdcolumn
)
*/
?>

Or you can number the columns from zero.  This help when using it in conjunction with mysql_fetch_row to get an array.  You don't have to remember which number of the array a certain column is.

<?php
$qColumnNames 
mysql_query("SHOW COLUMNS FROM table1",$db) or die("mysql error");
$numColumns mysql_num_rows($qColumnNames);
$x 0;
while (
$x $numColumns)
{
   
$colname mysql_fetch_row($qColumnNames);
   
$col[$colname[0]] = $x;
   
$x++;
}

print_r($col);

/* it will have the following output
Array (
[firstcolumn] => 0
[secondcolumn] => 1
[thirdcolumn] => 2
)
*/
?>

To use it in conjuction with mysql_fetch_row:

<?php
$row 
mysql_fetch_row("SELECT * from table1",$db) or die("mysql error");
?>

You can now call $row[col[firstcolumn]].  This becomes useful when you have a lot of columns.
2005-06-04 18:22:47
http://php5.kiev.ua/manual/ru/function.mysql-list-fields.html
Below script is used to get all coloumn indormation of an table.When we are working custome ORM then we need to match the coloumn name with array keys.

<?php
function getColoumn($table) {
     
$result mysql_query("SHOW COLUMNS FROM "$table);
      if (!
$result) {
        echo 
'Could not run query: ' mysql_error();
      }
     
$fieldnames=array();
      if (
mysql_num_rows($result) > 0) {
        while (
$row mysql_fetch_assoc($result)) {
         
$fieldnames[] = $row['Field'];
        }
      }

      return 
$fieldnames;
}
?>
2012-06-22 23:32:08
http://php5.kiev.ua/manual/ru/function.mysql-list-fields.html

    Поддержать сайт на родительском проекте КГБ