介绍
在MSSQL数据库中,数据检索是非常常见的操作。fetch_array函数是其中的一个常用函数,它可以返回一个结果集中的行,并存储为关联数组、数字数组或同时存储为两者,使我们可以按需获取所需结果。
语法
在MSSQL中,fetch_array函数的语法如下:
sqlsrv_fetch_array ( resource $stmt [, int $fetchType = SQLSRV_FETCH_BOTH [, int $row [, int $offset ]]] ) : mixed
其中,sqlsrv_fetch_array() 函数将行数据作为数组返回。 数组可以是关联数组、数字数组,或两者兼而有之。
这个函数比 get_result 函数和 fetch 函数更加灵活,可以返回更多类型的结果。
参数说明
以下是fetch_array函数的参数:
$stmt - 这是查询句柄。
$fetchType - 这是一个快捷方法,它可以是 SQLSRV_FETCH_NUMERIC、SQLSRV_FETCH_ASSOC、SQLSRV_FETCH_BOTH。
$row - (可选)数字,表示要检索的行数。默认值是1。
$offset - (可选)数字,表示将指针移动到此行+偏移量。默认为0。
返回值
fetch_array() 函数返回行的数组形式,每次调用都会返回结果集中下一行的第一个元素。
当没有更多数据可用时,返回 FALSE。
如何在MSSQL中使用fetch_array()执行查询
连接到数据库
首先,需要创建一个连接到MSSQL数据库。创建连接是使用 sqlsrv_connect函 数执行的。下面的代码展示了如何创建一个连接:
$serverName = "serverName\sqlexpress";
$connectionInfo = array("Database"=>"dbName", "UID"=>"userName", "PWD"=>"password");
$conn = sqlsrv_connect( $serverName, $connectionInfo);
执行查询
现在,可以使用 sqlsrv_query 函数执行查询。要使用 fetch_array 函数,在执行查询时必须传递 'Scrollable' => SQLSRV_CURSOR_KEYSET 选项。
下面是一个查询的示例:
$query = "SELECT Id, Name, Age FROM Persons";
$params = array();
$options = array( "Scrollable" => SQLSRV_CURSOR_KEYSET );
$result = sqlsrv_query($conn, $query, $params, $options);
获取结果集
一旦查询执行成功,将生成一个结果集。可以使用 fetch_array 函数遍历结果集。下面的代码将在结果集中反复调用 fetch_array 函数,直到将所有行都处理完毕为止:
while( $row = sqlsrv_fetch_array( $result, SQLSRV_FETCH_ASSOC) ) {
echo $row['Id'].", ".$row['Name'].", ".$row['Age']."
";
}
在这个例子中 *每次调用 fetch_array 都将返回一行数据的关联数组。fetch_array 函数需要一个相对于结果集指针位置的参数 $result 。
总结
对于需要从数据库中检索大量数据的应用程序来说,fetch_array 函数是一个非常有用的工具。它使得从MSSQL数据库中检索数据变得非常容易,并且可以按需获取所需结果。通过使用上述方法,我们可以在MSSQL中使用fetch_array函数来执行查询,并使用结果集中的数据。