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