Partager via


sqlsrv_field_metadata

Récupère les métadonnées des champs d'une instruction préparée. Pour plus d'informations sur la préparation d'une instruction, consultez sqlsrv_query ou sqlsrv_prepare. Notez que la fonction sqlsrv_field_metadata peut être appelée sur n'importe quelle instruction préparée, avant ou après l'exécution.

Syntaxe

sqlsrv_field_metadata( resource $stmt)

Paramètres

$stmt : ressource instruction dont les métadonnées de champ sont recherchées.

Valeur de retour

array de tableaux ou valeur false. Le tableau se compose d'un tableau pour chaque champ du jeu de résultats. Chaque sous-tableau possède des clés décrites dans le tableau ci-dessous. En cas d'erreur lors de la récupération des métadonnées de champ, la valeur false est retournée.

Clé Description

Name

Nom de la colonne à laquelle le champ correspond.

Type

Valeur numérique qui correspond à un type SQL.

Size

Nombre de caractères pour les champs de type caractère (char(n), varchar(n), nchar(n), nvarchar(n), XML). Nombre d'octets pour les champs de type binaire (binary(n), varbinary(n), UDT). NULL pour les autres types de données SQL Server.

Precision

Précision pour les types de précision variable (real, numeric, decimal, datetime2, datetimeoffset et time). NULL pour les autres types de données SQL Server.

Scale

Échelle pour les types d'échelle variable (numeric, decimal, datetime2, datetimeoffset et time). NULL pour les autres types de données SQL Server.

Nullable

Valeur énumérée indiquant si la colonne accepte les valeurs Null (SQLSRV_NULLABLE_YES), si elle n'accepte pas les valeurs Null (SQLSRV_NULLABLE_NO) ou si cela n'est pas déterminé (SQLSRV_NULLABLE_UNKNOWN).

Le tableau ci-dessous contient des informations supplémentaires sur les clés de chaque sous-tableau (consultez la documentation SQL Server pour en savoir plus sur ces types) :

Type de données SQL Server 2008 Type Précision min/max Échelle min/max Size

bigint

-5

8

binary

-2

0 < n < 8000 1

bit

-7

char

1

0 < n < 8000 1

date

91

10/10

0/0

datetime

93

23/23

3/3

datetime2

93

19/27

0/7

datetimeoffset

-155

26/34

0/7

decimal

3

1/38

0/valeur de précision

float

6

4/8

image

-4

2 Go

int

4

money

3

19/19

4/4

nchar

-8

0 < n < 4000 1

ntext

-10

1 Go

numeric

2

1/38

0/valeur de précision

nvarchar

-9

0 < n < 4000 1

real

7

4/4

smalldatetime

93

16/16

0/0

smallint

5

2 octets

smallmoney

3

10/10

4/4

text

-1

2 Go

time

-154

8/16

0/7

timestamp

-2

8 octets

tinyint

-6

1 octet

udt

-151

variable

uniqueidentifier

-11

16

varbinary

-3

0 < n < 8000 1

varchar

12

0 < n < 8000 1

xml

-152

0

(1) Zéro (0) indique que la taille maximale est autorisée.

La clé autorisant la valeur Null peut être définie sur oui ou non.

Exemple

L'exemple suivant crée une ressource d'instruction, puis récupère et affiche les métadonnées de champ. L'exemple suppose que SQL Server et la base de données AdventureWorks sont installés sur l'ordinateur local. Toutes les données de sortie sont écrites dans la console lorsque l'exemple est exécuté à partir de la ligne de commande.

<?php
/* Connect to the local server using Windows Authentication and
specify the AdventureWorks database as the database in use. */
$serverName = "(local)";
$connectionInfo = array( "Database"=>"AdventureWorks");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
if( $conn === false )
{
     echo "Could not connect.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Prepare the statement. */
$tsql = "SELECT ReviewerName, Comments FROM Production.ProductReview";
$stmt = sqlsrv_prepare( $conn, $tsql);

/* Get and display field metadata. */
foreach( sqlsrv_field_metadata( $stmt) as $fieldMetadata)
{
      foreach( $fieldMetadata as $name => $value)
      {
           echo "$name: $value\n";
      }
      echo "\n";
}

/* Note: sqlsrv_field_metadata can be called on any statement
resource, pre- or post-execution. */

/* Free statement and connection resources. */
sqlsrv_free_stmt( $stmt);
sqlsrv_close( $conn);
?>

Voir aussi

Concepts

Constantes SQLSRV
À propos des exemples de code dans la documentation

Autres ressources

Référence de l'API (Pilote SQL Server pour PHP)