mssql_field_type()
(PHP 4, PHP 5, PECL odbtp >= 1.1.1)
Gets the type of a field
WarningThis function wasREMOVEDin PHP 7.0.0.
Alternatives to this function include:
- PDOStatement::getColumnMeta()
- sqlsrv_field_metadata()
odbc_field_type()
说明
mssql_field_type(resource $result[,int $offset= -1]): string
Returns the type of field no.$offsetin$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 fieldmssql_field_name()
Get the name of a field
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
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
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