mssql_field_name

(PHP 3 >= 3.0.3, PHP 4, PHP 5)

mssql_field_name -- Get the name of a field

Description

string mssql_field_name ( resource result [, int offset] )

警告

本函数暂无文档,仅有参数列表。


add a note add a note User Contributed Notes
php at electricsurfer dot com
04-Jun-2003 03:18
WARNING: as of PHP 4.3.2

Only returns 1st 30 characters of fieldname.
harold at worby dot dns2go dot com
06-Mar-2002 05: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
08-Oct-2000 10: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;