文字

mssql_field_type

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

mssql_field_typeGets the type of a field

说明

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

Returns the type of field no. offset in result.

参数

result

The result resource that is being evaluated. This result comes from a call to mssql_query() .

offset

The field offset, starts at 0. If omitted, the current field is used.

返回值

The type of the specified field index on success 或者在失败时返回 FALSE .

范例

Example #1 mssql_field_type() example

<?php
// Connect to MSSQL and select the database
mssql_connect ( 'MANGO\SQLEXPRESS' 'sa' 'phpfi' );
mssql_select_db ( 'php' );

// Send a select query to MSSQL
$query  mssql_query ( 'SELECT [name] FROM [php].[dbo].[persons]' );

// Print the field type and length
echo  '\''  mssql_field_name ( $query 0 ) .  '\' is a type of ' 
     
strtoupper ( mssql_field_type ( $query 0 )) . 
     
'('  mssql_field_length ( $query 0 ) .  ')' ;

// Free the query result
mssql_free_result ( $query );
?>

以上例程的输出类似于:

'name' is a type of CHAR(50)

参见

  • mssql_field_length() - Get the length of a field
  • mssql_field_name() - Get the name of a field

用户评论:

[#1] huib at bestia dot com [2005-05-27 03:18:33]

If you need a more detailed discription of your column type,

This query shows your true datatypes like:

binary => binary 
varbinary => varbinary 
varchar => varchar 
bit => bit
char => char
datetime => datetime
smalldatetime => smalldatetime 
decimal => decimal 
real => real
float => float 
tinyint => tinyint 
smallint => smallint 
smallmoney => smallmoney 
money => money
nchar => nchar 
ntext => ntext 
text => text
numeric => numeric
nvarchar => nvarchar 
 

SELECT     sysobjects.name AS tableName, syscolumns.name AS columnName, systypes.name AS columnType
FROM         sysobjects INNER JOIN
                      syscolumns ON sysobjects.id = syscolumns.id INNER JOIN
                      systypes ON syscolumns.type = systypes.type AND syscolumns.xusertype = systypes.xusertype

[#2] nicholas at silverorange dot com [2005-03-24 06:39:57]

The matching returned values for each of the common datatypes are:

binary => blob
varbinary => blob
varchar => char
bit => bit
char => char
datetime => datetime
smalldatetime => datetime
decimal => real
real => real
float => real
tinyint => int
smallint => int
smallmoney => money
money => money
nchar => char
ntext => text
text => text
numeric => numeric
nvarchar => char

[#3] rmorales at protel dot net dot mx [2003-06-17 23:46:23]

Here i have an usable code for all u:

   I wanted to know if a field is nullable or if it's defined as a primary key, here are those functions definitions:

*Aditional Notes:
    if any of the tables are replicated in another database exactly , this code will not work well.

//-----to know if a field is nullable-------
function mssql_field_nullable($ip,$user,$pass,$table,$field)//starting from 1st field
{
      $conn=mssql_connect($ip,$user,$pass)or die;
      mssql_select_db('master');
      $result=mssql_query("SELECT syscolumns.isnullable
FROM sysobjects INNER JOIN
    syscolumns ON sysobjects.id = syscolumns.id WHERE sysobjects.name ='$table' AND syscolumns.isnullable = 1");
      $x=mssql_num_rows($result);
      mssql_close($conn);
      return ($x==1?1:0);

}
//-------to know if a field is a primary key-------
function mssql_field_key($ip,$user,$pass,$table,$field)//starting from 1st field
{
      $conn=mssql_connect($ip,$user,$pass)or die;
      mssql_select_db('master');
      $result=mssql_query("SELECT sysindexkeys.colid FROM sysobjects INNER JOIN sysindexkeys ON sysobjects.id = sysindexkeys.id WHERE sysobjects.name ='$table' AND sysindexkeys.colid = $field");
      $x=mssql_num_rows($result);
      mssql_close($conn);
      return ($x==1?1:0);

}
by R.M.R.A

上一篇: 下一篇: