带有迭代的示例 (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 "第 1 列的值: '.trim($row[0]).', 第 2 列的值: '.trim($row[1]);
}
(无版本信息可用,可能仅存在于Git仓库中)
sqlsrv_fetch_array — 返回一行作为数组
将下一行可用数据作为关联数组、数字数组或两者(默认)返回。
stmt
由 sqlsrv_query 或 sqlsrv_prepare 返回的语句资源。
fetchType
一个预定义常量,指定要返回的数组类型。可能的值为 SQLSRV_FETCH_ASSOC
、SQLSRV_FETCH_NUMERIC
和 SQLSRV_FETCH_BOTH
(默认)。
当使用多个同名列的结果集时,不应使用 SQLSRV_FETCH_ASSOC 获取类型。
row
指定要访问使用可滚动游标的结果集中的行。可能的值为 SQLSRV_SCROLL_NEXT
、SQLSRV_SCROLL_PRIOR
、SQLSRV_SCROLL_FIRST
、SQLSRV_SCROLL_LAST
、SQLSRV_SCROLL_ABSOLUTE
和 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 = "服务器名称\实例名称";
$connectionInfo = array( "Database"=>"数据库名", "UID"=>"用户名", "PWD"=>"密码");
$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_SCROLL_ABSOLUTE)。
for ($i=0; $i < sqlsrv_num_rows($stmt); $i++) {
$row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC, SQLSRV_SCROLL_ABSOLUTE , $i );
echo "第 1 列的值: '.trim($row[0]).', 第 2 列的值: '.trim($row[1]);
}