Tipo de campo en una tabla SQL Server con PHP

Utilizando algunas funciones del driver de Microsoft para PHP y SQL Server se puede obtener una cadena con el tipo de un campo concreto en una tabla de nuestra base de datos:

$query = "select $campo from $tabla where 1=2";
$cols = sqlsrv_query($this->iIdConexion, $query);
$valores = sqlsrv_field_metadata($cols);
echo $sql_fields_types[$valores[0]['Type']];

La relación de equivalencia entre los valores numéricos y su correspondiente cadena es la siguiente:

$sql_fields_types = array("-5"=>"bigint",
                "-2"=>"binary",
                "-7"=>"bit",
                "1"=>"char",
                "93"=>"datetime",
                "3"=>"decimal",
                "6"=>"float",
                "-4"=>"image",
                "4"=>"int",
                "3"=>"money",
                "-8"=>"nchar",
                "-10"=>"ntext",
                "2"=>"numeric",
                "-9"=>"nvarchar",
                "-9"=>"nvarcharMAX",
                "7"=>"real",
                "93"=>"smalldatetime",
                "5"=>"smaillint",
                "3"=>"smallmoney",
                "-150"=>"sql_variant",
                "-1"=>"text",
                "-2"=>"timestamp",
                "-6"=>"tinyint",
                "-11"=>"uniqueidentifiar",
                "-3"=>"varbinary",
                "-3"=>"varbinaryMAX",
                "12"=>"varchar",
                "12"=>"varcharMAX",
                "-152"=>"xml");

Comentarios