<?xml version="1.0" encoding="utf-8"?> <!-- $Revision$ --> <refentry xml:id="function.sqlsrv-fetch-array" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink"> <refnamediv> <refname>sqlsrv_fetch_array</refname> <refpurpose>Returns a row as an array</refpurpose> </refnamediv> <refsect1 role="description"> &reftitle.description; <methodsynopsis> <type>array</type><methodname>sqlsrv_fetch_array</methodname> <methodparam><type>resource</type><parameter>stmt</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>fetchType</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>row</parameter></methodparam> <methodparam choice="opt"><type>int</type><parameter>offset</parameter></methodparam> </methodsynopsis> <para> Returns the next available row of data as an associative array, a numeric array, or both (the default). </para> </refsect1> <refsect1 role="parameters"> &reftitle.parameters; <para> <variablelist> <varlistentry> <term><parameter>stmt</parameter></term> <listitem> <para> A statement resource returned by sqlsrv_query or sqlsrv_execute. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>fetchType</parameter></term> <listitem> <para> A predefined constant specifying the type of array to return. Possible values are <constant>SQLSRV_FETCH_ASSOC</constant>, <constant>SQLSRV_FETCH_NUMERIC</constant>, and <constant>SQLSRV_FETCH_BOTH</constant> (the default). </para> <para> A fetch type of SQLSRV_FETCH_ASSOC should not be used when consuming a result set with multiple columns of the same name. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>row</parameter></term> <listitem> <para> Specifies the row to access in a result set that uses a scrollable cursor. Possible values are <constant>SQLSRV_SCROLL_NEXT</constant>, <constant>SQLSRV_SCROLL_PRIOR</constant>, <constant>SQLSRV_SCROLL_FIRST</constant>, <constant>SQLSRV_SCROLL_LAST</constant>, <constant>SQLSRV_SCROLL_ABSOLUTE</constant> and, <constant>SQLSRV_SCROLL_RELATIVE</constant> (the default). When this parameter is specified, the <parameter>fetchType</parameter> must be explicitly defined. </para> </listitem> </varlistentry> <varlistentry> <term><parameter>offset</parameter></term> <listitem> <para> Specifies the row to be accessed if the row parameter is set to <constant>SQLSRV_SCROLL_ABSOLUTE</constant> or <constant>SQLSRV_SCROLL_RELATIVE</constant>. Note that the first row in a result set has index 0. </para> </listitem> </varlistentry> </variablelist> </para> </refsect1> <refsect1 role="returnvalues"> &reftitle.returnvalues; <para> Returns an array on success, &null; if there are no more rows to return, and &false; if an error occurs. </para> </refsect1> <refsect1 role="examples"> &reftitle.examples; <para> <example> <title>Retrieving an associative array.</title> <programlisting role="php"> <![CDATA[ <?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); ?> ]]> </programlisting> </example> </para> <para> <example> <title>Retrieving a numeric array.</title> <programlisting role="php"> <![CDATA[ <?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); ?> ]]> </programlisting> </example> </para> </refsect1> <refsect1 role="notes"> &reftitle.notes; <para> Not specifying the <parameter>fetchType</parameter> or explicity using the <constant>SQLSRV_FETCH_TYPE</constant> constant in the examples above will return an array that has both associative and numeric keys. </para> <para> If more than one column is returned with the same name, the last column will take precedence. To avoid field name collisions, use aliases. </para> <para> If a column with no name is returned, the associative key for the array element will be an empty string (""). </para> </refsect1> <refsect1 role="seealso"> &reftitle.seealso; <para> <simplelist> <member><function>sqlsrv_connect</function></member> <member><function>sqlsrv_query</function></member> <member><function>sqlsrv_errors</function></member> <member><function>sqlsrv_fetch</function></member> </simplelist> </para> </refsect1> </refentry> <!-- Keep this comment at the end of the file Local variables: mode: sgml sgml-omittag:t sgml-shorttag:t sgml-minimize-attributes:nil sgml-always-quote-attributes:t sgml-indent-step:1 sgml-indent-data:t indent-tabs-mode:nil sgml-parent-document:nil sgml-default-dtd-file:"~/.phpdoc/manual.ced" sgml-exposed-tags:nil sgml-local-catalogs:nil sgml-local-ecat-files:nil End: vim600: syn=xml fen fdm=syntax fdl=2 si vim: et tw=78 syn=sgml vi: ts=1 sw=1 -->