sqlsrv_field_metadata
準備されたステートメントのフィールドのメタデータを取得します。ステートメントの準備については、「sqlsrv_query」または「sqlsrv_prepare」を参照してください。sqlsrv_field_metadata は、準備された任意のステートメントの実行の前後に呼び出すことができます。
構文
sqlsrv_field_metadata( resource $stmt)
パラメータ
$stmt: フィールド メタデータの検索対象となるステートメント リソース。
戻り値
配列の array または false。この配列には、結果セットのフィールドごとに 1 つの配列が格納されます。各サブ配列には、次の表に示すキーが含まれています。フィールド メタデータの取得中にエラーが発生した場合は、false が返されます。
キー | 説明 |
---|---|
Name |
フィールドに対応する列の名前。 |
Type |
SQL 型に対応する数値。 |
Size |
文字型 (char(n)、varchar(n)、nchar(n)、nvarchar(n)、XML) のフィールドの文字数。バイナリ型 (binary(n)、varbinary(n)、UDT) フィールドのバイト数。その他の SQL Server データ型の場合は NULL。 |
Precision |
有効桁数が一定でない型 (real、numeric、decimal、datetime2、datetimeoffset、および time) の有効桁数。その他の SQL Server データ型の場合は NULL。 |
Scale |
小数点以下桁数が一定でない型 (numeric、decimal、datetime2、datetimeoffset、および time) の小数点以下桁数。その他の SQL Server データ型の場合は NULL。 |
Nullable |
列で NULL が許容されるかどうかを示す列挙値。許容される場合は SQLSRV_NULLABLE_YES、許容されない場合は SQLSRV_NULLABLE_NO、許容されるかどうかが不明である場合は SQLSRV_NULLABLE_UNKNOWN。 |
次の表は、各サブ配列用のキーに関する情報を示します (これらの型については SQL Server ドキュメントを参照)。
SQL Server 2008 のデータ型 | 型 | 最小値/最大値 (有効桁数) | 最小値/最大値 (小数点以下桁数) | サイズ |
---|---|---|---|---|
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/有効桁数の値 |
|
float |
6 |
4/8 |
||
image |
-4 |
2 GB |
||
int |
4 |
|||
money |
3 |
19/19 |
4/4 |
|
nchar |
-8 |
0 < n < 4000 1 |
||
ntext |
-10 |
1 GB |
||
numeric |
2 |
1/38 |
0/有効桁数の値 |
|
nvarchar |
-9 |
0 < n < 4000 1 |
||
real |
7 |
4/4 |
||
smalldatetime |
93 |
16/16 |
0/0 |
|
smallint |
5 |
2 バイト |
||
smallmoney |
3 |
10/10 |
4/4 |
|
text |
-1 |
2 GB |
||
time |
-154 |
8/16 |
0/7 |
|
timestamp |
-2 |
8 バイト |
||
tinyint |
-6 |
1 バイト |
||
udt |
-151 |
可変 |
||
uniqueidentifier |
-11 |
16 |
||
varbinary |
-3 |
0 < n < 8000 1 |
||
varchar |
12 |
0 < n < 8000 1 |
||
xml |
-152 |
0 |
(1) ゼロ (0) は、最大サイズが許可されることを示します。
NULL 値を許可するキーは、Yes または No になります。
例
次の例では、ステートメント リソースを作成し、フィールド メタデータを取得して表示します。この例では、SQL Server と AdventureWorks データベースがローカル コンピューターにインストールされていることを前提としています。この例をコマンド ラインから実行した場合、すべての出力はコンソールに書き込まれます。
<?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);
?>