sqlsrv_fetch

PHP-Treiber herunterladen

Macht die nächste Zeile eines Resultsets zum Lesen verfügbar. Verwenden Sie sqlsrv_get_field, um Felder einer Zeile zu lesen.

Syntax

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

Parameter

$stmt: Hierbei handelt es sich um 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]: Einer der folgenden Werte, der die Zeile angibt, auf die in einem Resultset zugegriffen werden soll, das einen scrollfähigen Cursor verwendet:

  • 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 Festlegen eines Cursortyps und Zeilenauswahl.

offset [OPTIONAL]: Dieser Wert wird zusammen 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 keine weiteren Ergebnisse im Resultset vorhanden sind, wird NULL zurückgegeben. Wenn ein Fehler aufgetreten ist, wird false zurückgegeben.

Beispiel

Im folgenden Beispiel wird sqlsrv_fetch verwendet, um eine Zeile von Daten abzurufen, die eine Produktprüfung und den Namen des Bearbeiters enthält. Zum Abrufen von Daten aus dem Resultset wird sqlsrv_get_field verwendet. Das Beispiel setzt voraus, dass SQL Server und die AdventureWorks-Datenbank auf dem lokalen Computer installiert sind. Wenn das Beispiel über die Befehlszeile ausgeführt wird, werden alle Ausgaben in die Konsole geschrieben.

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

Weitere Informationen

Abrufen von Daten

API-Referenz für den SQLSRV-Treiber

Informationen zu den Codebeispielen in der Dokumentation