sqlsrv_fetch

Macht die nächste Zeile eines Resultsets zum Lesen verfügbar. Zum Lesen von Feldern einer Zeile verwenden Sie die sqlsrv_get_field-Funktion.

Syntax

sqlsrv_fetch( resource $stmt[, row[, ]offset])

Parameter

$stmt: Eine Anweisungsressource, die einer ausgeführten Anweisung entspricht.

Hinweis

Eine Anweisung muss ausgeführt werden, bevor Ergebnisse abgerufen werden können. Informationen zur Ausführung einer Anweisung finden Sie unter sqlsrv_query und sqlsrv_execute.

row [OPTIONAL]: Hinzugefügt in Version 1.1. Einer der folgenden Werte, mit dem die Zeile angegeben wird, auf die in einem Resultset mit einem scrollfähigen Cursor zugegriffen werden soll:

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

Weitere Informationen zu diesen Werten finden Sie unter Angeben eines Cursortyps und Auswählen von Zeilen. Die Unterstützung für scrollfähige Cursor wurde in Version 1.1 von SQL Server-Treiber für PHP hinzugefügt.

offset [OPTIONAL]: Wird mit SQLSRV_SCROLL_ABSOLUTE und SQLSRV_SCROLL_RELATIVE verwendet, um die abzurufende Zeile anzugeben. Der erste Datensatz im Resultset ist 0.

Rückgabewert

Wenn die nächste Zeile des Resultsets erfolgreich abgerufen wurde, wird true zurückgegeben. Wenn das Resultset keine weiteren Ergebnisse enthält, wird null zurückgegeben. Beim Auftreten eines Fehlers wird false zurückgegeben.

Beispiel

Im folgenden Beispiel wird mit sqlsrv_fetch eine Datenzeile abgerufen, die eine Produktbewertung und den Namen des Autors dieser Bewertung enthält. Zum Abrufen von Daten aus dem Resultset wird sqlsrv_get_field verwendet. Im Beispiel wird davon ausgegangen, dass SQL Server und die AdventureWorks-Datenbank auf dem lokalen Computer installiert sind. Alle Ausgaben werden in die Konsole geschrieben, wenn das Beispiel über die Befehlszeile ausgeführt wird.

<?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));
}

/* Set up and execute the query. Note that both ReviewerName and
Comments are of SQL Server type nvarchar. */
$tsql = "SELECT ReviewerName, Comments 
         FROM Production.ProductReview
         WHERE ProductReviewID=1";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false )
{
     echo "Error in statement preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Make the first row of the result set available for reading. */
if( sqlsrv_fetch( $stmt ) === false)
{
     echo "Error in retrieving row.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Note: Fields must be accessed in order.
Get the first field of the row. Note that no return type is
specified. Data will be returned as a string, the default for
a field of type nvarchar.*/
$name = sqlsrv_get_field( $stmt, 0);
echo "$name: ";

/*Get the second field of the row as a stream.
Because the default return type for a nvarchar field is a
string, the return type must be specified as a stream. */
$stream = sqlsrv_get_field( $stmt, 1, 
                            SQLSRV_PHPTYPE_STREAM( SQLSRV_ENC_CHAR));
while( !feof( $stream ))
{ 
    $str = fread( $stream, 10000);
    echo $str;
}

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

Siehe auch

Konzepte

Vergleichen der Funktionen für den Datenabruf
Informationen zu den Codebeispielen in der Dokumentation

Weitere Ressourcen

Abrufen von Daten
API-Referenz (SQL Server-Treiber für PHP)