PHP Doku:: Liefert den Namen eines Feldes - function.mssql-field-name.html

Verlauf / Chronik / History: (2) anzeigen

Sie sind hier:
Doku-StartseitePHP-HandbuchFunktionsreferenzDatenbankerweiterungenAnbieterspezifische DatenbankerweiterungenMicrosoft SQL ServerMssql-Funktionenmssql_field_name

Ein Service von Reinhard Neidl - Webprogrammierung.

Mssql-Funktionen

<<mssql_field_length

mssql_field_seek>>

mssql_field_name

(PHP 4, PHP 5, PECL odbtp >= 1.1.1)

mssql_field_nameLiefert den Namen eines Feldes

Beschreibung

string mssql_field_name ( resource $result [, int $offset = -1 ] )

Gibt den Namen des Feldes Nr. offset aus result zurück.

Parameter-Liste

result

Der Bezeichner des Ergebnisses, das ausgewertet wird. Dieses Ergebnis stammt von einem Aufruf von mssql_query().

offset

Der Offset des Feldes, beginnend bei 0. Falls er nicht angegeben wurde, wird das aktuelle Feld verwendet.

Rückgabewerte

Gibt den Namen des angegebenen Feldes zurück. Im Fehlerfall wird FALSE zurückgegeben.

Beispiele

Beispiel #1 mssql_field_name()-Beispiel

<?php
// Eine select-Anfrage an MSSQL senden
$anfrage mssql_query('SELECT [username], [name], [email] FROM [php].[dbo].[userlist]');

echo 
'Das Ergebnis enthält die folgenden Felder:'PHP_EOL;

// Alle Feldnamen aus dem Ergebnis auflisten
for ($i 0$i mssql_num_fields($anfrage); ++$i) {
    echo 
' - ' mssql_field_name($anfrage$i), PHP_EOL;
}

// Den Ergebnisspeicher freigeben
mssql_free_result($anfrage);
?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

Das Ergebnis enthält die folgenden Felder:
 - username
 - name
 - email

Siehe auch


3 BenutzerBeiträge:
- Beiträge aktualisieren...
php at electricsurfer dot com
3.06.2003 21:18
WARNING: as of PHP 4.3.2

Only returns 1st 30 characters of fieldname.
harold at worby dot dns2go dot com
6.03.2002 10:29
A simple script to walk through an MSSQL server.
I'm using PHP 4.06 and Freetds 5.1 on Solaris 2.7 and Apache 1.3
Several of the msql_ functions seem to be broken/missing.
This is what I found to work.

<?php
// --------------------------------------------------------
// URL http://server/mssqltest.php?DB=Database&table=TableName
// --------------------------------------------------------
// Default settings: edit to meet your needs
if (!($user)) $user=sa;
if (!(
$pass)) $pass="password";
if (!(
$host)) $host="acer900";
// --------------------------------------------------
// connect to mssql server
$connect = mssql_connect($host,$user,$pass) or die ($host." not accessible.");
// select the database
if ($DB) mssql_select_db($DB)or die('USE '.$DB.' failed!');
if (!(
$table)) {
   
$query="EXEC sp_tables \"%\",\"%\",\"".$DB."\",\"'TABLE'\"";
   
$linkcol=2;
   
$linkcol="TABLE_NAME";
$linkformat=" <a href=\"%s?DB=".$DB."&table=%s\">%s</a> ";
}else{
// tables and DB - Get DATA
   
$query="SELECT * FROM ".$table;
   
$linkformat=" <a href=\"%s\">%s</a> ";
}
if (!(
$DB))    {
   
$query="EXEC sp_databases";
   
$linkcol=0;
   
$linkcol="DATABASE_NAME";
   
$linkformat="<a href=\"%s?DB=%s\">%s</a>";
}

// run query
echo $query."<br>";
$result = mssql_query( $query) or die('Query failed!');
$fields = mssql_num_fields ($result) or die("Num Fields Failed");
$rows   = mssql_num_rows ($result);

echo
"<br>Rows ".$rows." Fields ".$fields."<br>";
echo
"<TABLE border=1><tr>";
// get field names
for ( $f = 0 ; $f < $fields ; $f++ ){
   
$name = mssql_fetch_field($result, $f);
    echo
"<td>".$f.$name->name."</td>";
// Strange here.. without the "X"'s the () is always TRUE??
   
if ($name->name."X" == $linkcol."X") $linkcol = $f;
}
echo
"</tr>";
//Display Data
for ($i = 0; $i < $rows ; $i =$i +1){
    for (
$f = 0; $f<$fields ; $f++){
       
$name=mssql_result($result,$i,$f);
        if (
$f == $linkcol){
printf("<td>".$linkformat."</td>\n",$PHP_SELF,
 
$name , $name );
        }
        else{
            echo
"<td>". $name . "</td>";
        }
    }
echo
"</tr>";
}
echo
"</TABLE><br>";

// close connection
mssql_close ($connect);
?>
tengel at sonic dot net
8.10.2000 4:43
This function isn't supported (PHP 4.0.2) if using Sybase/FreeTDS to access SQLServer (linux/solaris/bsd/etc).  Instead, use "mssql_fetch_field()" like so:

$field_name = mssql_fetch_field($query_result, $field_number);
print $field_name->name;



PHP Powered Diese Seite bei php.net
The PHP manual text and comments are covered by the Creative Commons Attribution 3.0 License © the PHP Documentation Group - Impressum - mail("TO:Reinhard Neidl",...)