sqlsrv_fetch_array

Ruft die nächste Datenzeile als array ab.

Syntax

sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])

Parameter

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

$fetchType[OPTIONAL]: Eine vordefinierte Konstante. Dieser Parameter kann einen der in der folgenden Tabelle aufgelisteten Werte annehmen:

Wert Beschreibung

SQLSRV_FETCH_NUMERIC

Die nächste Datenzeile wird als numerisches Array zurückgegeben.

SQLSRV_FETCH_ASSOC

Die nächste Datenzeile wird als assoziatives Array zurückgegeben. Die Schlüssel für das Array entsprechen den Spaltennamen des Resultsets.

SQLSRV_FETCH_BOTH

Die nächste Datenzeile wird sowohl als numerisches als auch als assoziatives Array zurückgegeben. Dies ist der Standardwert.

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. (Wenn row angegeben wird, muss fetchtype explizit angegeben werden, auch wenn Sie den Standardwert angeben.)

  • 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

Beim Abruf einer Datenzeile wird ein array zurückgegeben. Wenn keine weiteren Zeilen abrufbar sind, wird null zurückgegeben. Beim Auftreten eines Fehlers wird false zurückgegeben.

Abhängig vom Wert des $fetchType-Parameters kann es sich bei dem zurückgegebenen array um ein numerisch indiziertes array, ein assoziatives array oder beides handeln. Standardmäßig wird ein array mit numerischen und assoziativen Schlüsseln abgerufen. Der Datentyp der Werte im zurückgegebenen Array entspricht dem PHP-Standarddatentyp. Weitere Informationen zu den standardmäßigen PHP-Datentypen finden Sie unter PHP-Standarddatentypen.

Hinweise

Wenn eine Spalte ohne Namen zurückgegeben wird, ist der assoziative Schlüssel für das Arrayelement eine leere Zeichenfolge (""). Im folgenden Beispiel wird mit einer Transact-SQL-Anweisung ein Wert in eine Datenbanktabelle eingefügt und der vom Server generierte primäre Schlüssel abgerufen:

INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);

SELECT SCOPE_IDENTITY()

Wenn das Resultset, das von der Zeile SELECT SCOPE_IDENTITY() dieser Anweisung zurückgegeben wird, als assoziatives Array abgerufen wird, dann ist der Schlüssel für den Rückgabewert eine leere Zeichenfolge (""), da die zurückgegebene Spalte keinen Namen hat. Um dies zu vermeiden, kann das Ergebnis als numerisches Array abgerufen werden, oder in der Transact-SQL-Anweisung kann ein Name für die zurückgegebene Spalte angegeben werden. Ein Spaltenname kann beispielsweise wie folgt in Transact-SQL angegeben werden:

SELECT SCOPE_IDENTITY() AS PictureID

Wenn das Resultset mehrere Spalten ohne Namen enthält, wird der Wert der letzten unbenannten Spalte dem Schlüssel zugewiesen, der eine leere Zeichenfolge ("") enthält.

Beispiel

Im folgenden Beispiel wird jede Zeile eines Resultsets als assoziatives array abgerufen. 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. */
$tsql = "SELECT FirstName, LastName
         FROM Person.Contact
         WHERE LastName='Alan'";
$stmt = sqlsrv_query( $conn, $tsql);
if( $stmt === false)
{
     echo "Error in query preparation/execution.\n";
     die( print_r( sqlsrv_errors(), true));
}

/* Retrieve each row as an associative array and display the results.*/
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_ASSOC))
{
      echo $row['LastName'].", ".$row['FirstName']."\n";
}

/* Free 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

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