suche nach in der

mysql_list_processes> <mysql_list_dbs
Last updated: Fri, 18 May 2012

view this page in

mysql_list_fields

(PHP 4, PHP 5)

mysql_list_fieldsListet MySQL Tabellenfelder auf

Beschreibung

resource mysql_list_fields ( string $database_name , string $table_name [, resource $Verbindungs-Kennung ] )

Liefert Informationen über den übergebenen Tabellennamen.

Diese Funktion ist veraltet. Stattdessen ist es vorzuziehen mit der Funktion mysql_query() den SQL-Befehl SHOW COLUMNS FROM table [LIKE 'name'] auszuführen.

Parameter-Liste

database_name

Der Name der abgefragten Datenbank.

table_name

Der Name der abgefragten Tabelle.

Verbindungs-Kennung

Die MySQL-Verbindung. Wird die Verbindungskennung nicht angegeben, wird die letzte durch mysql_connect() geöffnete Verbindung angenommen. Falls keine solche Verbindung gefunden wird, wird versucht, eine Verbindung aufzubauen, wie es beim Aufruf von mysql_connect() ohne Angabe von Argumenten der Fall wäre. Falls zufällig keine Verbindung gefunden oder aufgebaut werden kann, wird eine Warnung der Stufe E_WARNING erzeugt.

Rückgabewerte

Ein Zeiger auf ein Resultat resource bei Erfolg oder FALSE bei Fehlern.

Das zurückgegebene Resulta kann mit mysql_field_flags(), mysql_field_len(), mysql_field_name() und mysql_field_type() genutzt werden,

Beispiele

Beispiel #1 Alternative zum veraltetenmysql_list_fields()

<?php
$result 
mysql_query("SHOW COLUMNS FROM sometable");
if (!
$result) {
    echo 
'Konnte Abfrage nicht ausführen: ' mysql_error();
    exit;
}
if (
mysql_num_rows($result) > 0) {
    while (
$row mysql_fetch_assoc($result)) {
        
print_r($row);
    }
}
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

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

Anmerkungen

Hinweis:

Für die Abwärtskompatibiliät kann der folgende veraltete Alias verwendet werden: mysql_listfields()

Siehe auch

  • mysql_field_flags() - Liefert die Flags des spezifizierten Feldes in einem Anfrageergebnis
  • mysql_info() - Liefert Informationen über die zuletzt ausgeführte Anfrage zurück



add a note add a note User Contributed Notes
mysql_list_fields
steve at tequilasolutions dot com
12-Sep-2006 03:33
Note, using mysql_list_fields will change the currently selected database so subsequent mysql_query operations will be on the database in param 1 not the one selected with mysql_select_db
arster
15-Oct-2005 09:05
# This should also give you an array of column names
$res = mysql_query("SHOW COLUMNS FROM `my_table`");
while ($row = mysql_fetch_array($res)) $col_names[]=$row[0];
harryzhong at hotmail dot com
26-Jul-2005 06:27
Here is a simple script get names of columns in an array:

//Get names of columns in table
$field_names = array();
$res = mysql_query("SHOW COLUMNS FROM `my_table`");
for($i=0;$i<mysql_num_rows($res);$i++){
    array_push($field_names,mysql_result($res, $i));
}
rhyous at yahoo dot com
05-Jun-2005 12:22
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)

$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.

$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:

$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.
mbevan at marginsoftware dot com
13-Nov-2003 10:40
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;
}

?>
dom at brainwaveuk dot com
19-Jul-2002 04:55
mysql_list_fields() retrieves information about the given table name but you can use something like mysql_fetch_field to retrieve the field names from a result source.

mysql_list_processes> <mysql_list_dbs
Last updated: Fri, 18 May 2012