PHP Velho Oeste 2024

mssql_field_type

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

mssql_field_typeフィールド型を得る

警告

この関数は PHP 7.0.0 で 削除 されました。

この関数の代替として、これらが使えます。

説明

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

result のフィールド番号 offset の型を返します。

パラメータ

result

処理対象となる結果リソース。これは mssql_query() のコールによって取得します。

offset

フィールドオフセット。0 から始まります。省略した場合は現在のフィールドを使用します。

返り値

成功した場合は指定したフィールドインデックスの型、 失敗した場合に FALSE を返します。

例1 mssql_field_type() の例

<?php
// MSSQL に接続し、データベースを選択します
mssql_connect('MANGO\SQLEXPRESS''sa''phpfi');
mssql_select_db('php');

// select クエリを MSSQL に送信します
$query mssql_query('SELECT [name] FROM [php].[dbo].[persons]');

// フィールドの型と長さを表示します
echo '\'' mssql_field_name($query0) . '\' is a type of ' 
     
strtoupper(mssql_field_type($query0)) . 
     
'(' mssql_field_length($query0) . ')';

// 結果を開放します
mssql_free_result($query);
?>

上の例の出力は、 たとえば以下のようになります。

'name' is a type of CHAR(50)

参考

add a note add a note

User Contributed Notes 3 notes

up
1
rmorales at protel dot net dot mx
20 years ago
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
up
0
huib at bestia dot com
18 years ago
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
up
-1
nicholas at silverorange dot com
19 years ago
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
To Top