PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mssql_fetch_object> <mssql_fetch_batch
Last updated: Fri, 04 Jul 2008

view this page in

mssql_fetch_field

(PHP 4, PHP 5, PECL odbtp:1.1.1-1.1.4)

mssql_fetch_field — obtiene la información de los campos

Descripción

object mssql_fetch_field ( int $result , int $field_offset )

Devuleve un objeto que contiene información de los campos.

mssql_fetch_field() se puede usar para obtener información acerca de los campos pertenecientes al resultado de una consulta. Si el parámetro field_offset no es especificado, se devuelve la información del siguiente campo que todavía no ha sido devuelto por mssql_fetch_field().

Las propiedades de este objeto son:

  • name - nombre de la columna. si la columna es el resultado de una función, esta propiedad vale #N, donde #N es un número de serie.
  • column_source - la tabla de donde se tomó la columna
  • max_length - longitud máxima de columna
  • numeric - 1 si la columna es numérica

Ver también mssql_field_seek()



mssql_fetch_object> <mssql_fetch_batch
Last updated: Fri, 04 Jul 2008
 
add a note add a note User Contributed Notes
mssql_fetch_field
schattenfeld at gmail dot com
02-Aug-2007 04:43
If you want to describe table like DESCRIBE in MySQL you can use this:
$sql = <<<SQL
SELECT column_name,data_type,column_default,is_nullable
FROM
  information_schema.tables AS t
  JOIN
  information_schema.columns AS c ON
    t.table_catalog=c.table_catalog AND
    t.table_schema=c.table_schema AND
    t.table_name=c.table_name
WHERE
  t.table_name='TABLE-NAME'
SQL;
huszti_dot_roland_at_freemail_dot_com
11-May-2006 02:51
For really detailed table information, use syscolumns, like this:

SELECT c.name, c.prec, c.scale, t.name type
  FROM syscolumns c, systypes t, sysobjects o
  WHERE o.name = 'yourtablename' AND o.id = c.id AND c.xtype = t.xtype

For other properties see the MS SQL online help. Search for 'syscolumns'.

Or an another solution:

sp_columns @table_name = 'yourtablename', @column_name = 'thecolumnname'
//no "select ..." !!!!

This gives info about only the specified column.
php_rindern_de
25-Oct-2004 10:36
commenting Reynard Hilman:

for me it looks like the colstat field value of 1 in syscolumns table indicates an Identity Column.
Reynard Hilman
23-Oct-2003 04:40
If you want to describe table structure (like mysql 'desc table' command), sending this query might help:
<?
$sql
= "SELECT c.name, c.isnullable, c.length, c.colstat, t.name type
  FROM syscolumns c, systypes t, sysobjects o
  WHERE o.name = '$table' AND o.id = c.id AND c.xtype = t.xtype"
;
?>
I suspect the colstat field in syscolumns table indicates primary key when its value is 1
bmaddy_at_class_dot_umn_dot_edu
30-Apr-2003 04:41
Be aware that this function will only return the first 30 characters of the name of the column.  If the actual column name is longer, it will be truncated.  This is at least true with the following setup:
PHP 4.3.1
MSSQL 8.00.760

Have a good day everyone!
Brian
alonf at spiralsolutions dot com
28-Nov-2002 11:47
As kubalaa at bigfoot dot com note mssql_fetch_field->column_source return field name instead table name also with MSSQL2000 connection. Be adwised!!!
pong at taft dot org
16-Mar-2002 02:07
When you mssql_fetch_field(int result), you need to do loop to get the name of each field.  Something like:

while($fld = mssql_fetch_field($rs)){
        echo $fld->name . "<br>";        
    }

I am wondering why we cannot refer it by a field number.
skipsey at hotmail dot com
08-Feb-2001 04:58
It seems fairly hard to get a list of the tables from your database using MSSQL but this seems to do the trick. This is set to get only the User Tables and ignores the sytem tables.


    function GetField($res,$field,$number) {
    return stripSlashes(mssql_result($res,$number,"$field"));
    }

mssql_connect("server","","") or die ("help me!");
mssql_select_db("") or die ("Noooo!");

$result = mssql_query ("sp_tables");
$fields = mssql_num_fields ($result);
$rows   = mssql_num_rows ($result);

for ($f=0; $f<$rows; $f++) {
   
    $CHKTYPE=GetField($result,"TABLE_TYPE",$f);
   
        if($CHKTYPE=='TABLE'){

            //$name = mssql_fetch_field($result, 2);
            $field=GetField($result,"TABLE_NAME",$f)."<br>";
   
            echo $field;

                }
            }
kubalaa at bigfoot dot com
05-Apr-2000 12:58
Using this function with MSSQL 7, $returned->column_source is the column name, not the table name as it should be.

mssql_fetch_object> <mssql_fetch_batch
Last updated: Fri, 04 Jul 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites