sqlsrv_fetch_array
(No version information available, might only be in Git)
sqlsrv_fetch_array — 行を配列として返す
説明
クエリ結果から列データを順に返します。列データの型は連想配列、配列、またはその両方(デフォルト)を選択できます。
パラメータ
stmt
-
sqlsrv_query あるいは sqlsrv_prepare が返すステートメントリソース。
fetchType
-
戻り値の型を指定します。連想配列
SQLSRV_FETCH_ASSOC
, 配列SQLSRV_FETCH_NUMERIC
, and 連想配列と配列の両方SQLSRV_FETCH_BOTH
(デフォルト) のうち1つを指定します。SQLSRV_FETCH_ASSOC(連想配列)は同じ名前の列が複数存在する結果セットを扱う際に使ってはいけません(連想配列のキーが重複するため)。
row
-
スクロール可能なカーソルを用いた結果セットから、取得する列を指定します。 定義済み定数は、
SQLSRV_SCROLL_NEXT
(次の列),SQLSRV_SCROLL_PRIOR
(前の列),SQLSRV_SCROLL_FIRST
(最初の列),SQLSRV_SCROLL_LAST
(最後の列),SQLSRV_SCROLL_ABSOLUTE
(列番号の絶対指定) and,SQLSRV_SCROLL_RELATIVE
(列番号の相対指定) (デフォルト値). この引数を指定する場合は、fetchType
を指定しなくてはなりません。 offset
-
引数rowに
SQLSRV_SCROLL_ABSOLUTE
またはSQLSRV_SCROLL_RELATIVE
を指定する際に、この引数で取得する列を指定します。 列番号は0から始まります。
例
例1 連想配列を扱う場合の例
<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC) ) {
echo $row['LastName'].", ".$row['FirstName']."<br />";
}
sqlsrv_free_stmt( $stmt);
?>
例2 配列を扱う場合の例
<?php
$serverName = "serverName\instanceName";
$connectionInfo = array( "Database"=>"dbName", "UID"=>"username", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo );
if( $conn === false ) {
die( print_r( sqlsrv_errors(), true));
}
$sql = "SELECT FirstName, LastName FROM SomeTable";
$stmt = sqlsrv_query( $conn, $sql );
if( $stmt === false) {
die( print_r( sqlsrv_errors(), true) );
}
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC) ) {
echo $row[0].", ".$row[1]."<br />";
}
sqlsrv_free_stmt( $stmt);
?>
注意
上の例で
fetchType
の指定を省略したり、定数
SQLSRV_FETCH_TYPE
を明示的に指定した場合は、
連想配列と数値添字の両方のキーを含む配列を返します。
同じ名前のカラムが複数存在する場合は、最後に現れたカラムがそれまでのすべてを上書きします。 名前の衝突を回避するには、別名を指定しましょう。
無名のカラムが返された場合、連想配列のキーは空文字列("")になります。
参考
- sqlsrv_connect() - Opens a connection to a Microsoft SQL Server database
- sqlsrv_query() - Prepares and executes a query
- sqlsrv_errors() - Returns error and warning information about the last SQLSRV operation performed
- sqlsrv_fetch() - Makes the next row in a result set available for reading
User Contributed Notes 1 note
Example with an iteration ( SQLSRV_SCROLL_ABSOLUTE ).
for ($i=0; $i < sqlsrv_num_rows($stmt); $i++) {
$row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC, SQLSRV_SCROLL_ABSOLUTE , $i );
echo "value of column 1: '.trim($row[0]).', value of column 2: '.trim($row[1]);
}