次の方法で共有


単一のフィールドを取得する方法

SQL Server Driver for PHP には、結果セットの行の単一のフィールドを取得するための sqlsrv_get_field 関数が用意されています。このトピックの例では、データ行から一度に 1 つのフィールドを取得する方法を示します。

注意

返されるデータの PHP データ型を指定する必要がある場合、またはデータをストリームとして取得する必要がある場合は、sqlsrv_get_field 関数を使用してください。詳細については、「データ取得関数の比較」を参照してください。

次の例では、sqlsrv_fetch 関数を使用して結果セットの各行を反復処理してから、sqlsrv_get_field 関数を使用して行の各フィールドを反復処理します。

この例では、AdventureWorks データベースの Purchasing.PurchaseOrderDetail テーブルから、指定した日付を持ち、在庫数量 (StockQty) が指定した値より少ない製品に関する製品情報を取得します。

この例では、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));
}

/* Define the query. */
$tsql = "SELECT ProductID,
                UnitPrice,
                StockedQty 
         FROM Purchasing.PurchaseOrderDetail
         WHERE StockedQty < 3 
         AND DueDate='2002-01-29'";

/* Execute the query. */
$stmt = sqlsrv_query( $conn, $tsql);
if ( $stmt )
{
     echo "Statement executed.\n";
} 
else 
{
     echo "Error in statement execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Iterate through the result set, printing a row of data upon each
iteration. Note that fields must be accessed in ordinal order. */
while( sqlsrv_fetch( $stmt))
{
     echo "ProdID: ".sqlsrv_get_field($stmt, 0)."\n";
     echo "UnitPrice: ".sqlsrv_get_field($stmt, 1)."\n";
     echo "StockedQty: ".sqlsrv_get_field($stmt, 2)."\n";
     echo "-----------------\n";
}

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

参照

処理手順

データを配列として取得する方法
データをオブジェクトとして取得する方法

概念

ドキュメントのコード例について

その他のリソース

データの取得