Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Haalt de volgende rij met gegevens op als een numeriek geïndexeerde matrix, associatieve matrix of beide.
Syntaxis
  
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])  
Parameterwaarden
$stmt: een instructieresource die overeenkomt met een uitgevoerde instructie.
$fetchType [OPTIONEEL]: een vooraf gedefinieerde constante. Deze parameter kan een van de waarden in de volgende tabel overnemen:
| Waarde | Beschrijving | 
|---|---|
| SQLSRV_FETCH_NUMERIC | De volgende rij met gegevens wordt geretourneerd als een numerieke matrix. | 
| SQLSRV_FETCH_ASSOC | De volgende rij met gegevens wordt geretourneerd als een associatieve matrix. De matrixsleutels zijn de kolomnamen in de resultatenset. | 
| SQLSRV_FETCH_BOTH | De volgende rij met gegevens wordt geretourneerd als zowel een numerieke matrix als een associatieve matrix. Dit is de standaardwaarde. | 
rij [OPTIONEEL]: Toegevoegd in versie 1.1. Een van de volgende waarden, waarbij de rij wordt opgegeven voor toegang tot een resultatenset die gebruikmaakt van een schuifbare cursor. (Wanneer rij is opgegeven, moet fetchtype expliciet worden opgegeven, zelfs als u de standaardwaarde opgeeft.)
- SQLSRV_SCROLL_NEXT
 - SQLSRV_SCROLL_PRIOR
 - SQLSRV_SCROLL_FIRST
 - SQLSRV_SCROLL_LAST
 - SQLSRV_SCROLL_ABSOLUTE
 - SQLSRV_SCROLL_RELATIVE
 
Zie Een cursortype opgeven en rijen selecteren voor meer informatie over deze waarden. Schuifbare cursorondersteuning is toegevoegd in versie 1.1 van de Microsoft-stuurprogramma's voor PHP voor SQL Server.
offset [OPTIONEEL]: wordt gebruikt met SQLSRV_SCROLL_ABSOLUTE en SQLSRV_SCROLL_RELATIVE om de rij op te geven die moet worden opgehaald. De eerste record in de resultatenset is 0.
Retourwaarde
Als een rij met gegevens wordt opgehaald, wordt een matrix geretourneerd. Als er geen rijen meer zijn om op te halen, wordt null geretourneerd. Als er een fout optreedt, wordt false geretourneerd.
Op basis van de waarde van de parameter $fetchType kan de geretourneerde matrix een numeriek geïndexeerde matrix, een associatieve matrix of beide zijn. Standaard wordt een matrix met zowel numerieke als associatieve sleutels geretourneerd. Het gegevenstype van een waarde in de geretourneerde matrix is het standaard-PHP-gegevenstype. Zie Standaard-PHP-gegevenstypen voor informatie over standaard PHP-gegevenstypen.
Opmerkingen
Als een kolom zonder naam wordt geretourneerd, is de associatieve sleutel voor het matrixelement een lege tekenreeks (""). Bekijk bijvoorbeeld deze Transact-SQL instructie waarmee een waarde in een databasetabel wordt ingevoegd en de door de server gegenereerde primaire sleutel wordt opgehaald:
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);  
SELECT SCOPE_IDENTITY()
Als de resultatenset die wordt geretourneerd door het SELECT SCOPE_IDENTITY() gedeelte van deze instructie wordt opgehaald als een associatieve matrix, is de sleutel voor de geretourneerde waarde een lege tekenreeks ("") omdat de geretourneerde kolom geen naam heeft. U kunt dit voorkomen door het resultaat op te halen als een numerieke matrix of u kunt een naam opgeven voor de geretourneerde kolom in de instructie Transact-SQL. De volgende instructie is een manier om een kolomnaam op te geven in Transact-SQL:
SELECT SCOPE_IDENTITY() AS PictureID
Als een resultatenset meerdere kolommen zonder namen bevat, wordt de waarde van de achternaamloze kolom toegewezen aan de lege tekenreeks ("") sleutel.
Voorbeeld van associatieve matrix
In het volgende voorbeeld wordt elke rij van een resultatenset opgehaald als een associatieve matrix. In het voorbeeld wordt ervan uitgegaan dat de SQL Server en de AdventureWorks-database op de lokale computer zijn geïnstalleerd. Alle uitvoer wordt naar de console geschreven wanneer het voorbeeld vanaf de opdrachtregel wordt uitgevoerd.
<?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);  
?>  
Geïndexeerd matrixvoorbeeld
In het volgende voorbeeld wordt elke rij van een resultatenset opgehaald als een numeriek geïndexeerde matrix.
In het voorbeeld worden productgegevens opgehaald uit de tabel Purchase.PurchaseOrderDetail van de AdventureWorks-database voor producten met een opgegeven datum en een voorraadhoeveelheid (StockQty) kleiner dan een opgegeven waarde.
In het voorbeeld wordt ervan uitgegaan dat SQL Server en de AdventureWorks-database op de lokale computer zijn geïnstalleerd. Alle uitvoer wordt naar de console geschreven wanneer het voorbeeld vanaf de opdrachtregel wordt uitgevoerd.
<?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));  
}  
  
/* Define the query. */  
$tsql = "SELECT ProductID,  
                UnitPrice,  
                StockedQty   
         FROM Purchasing.PurchaseOrderDetail  
         WHERE StockedQty < 3   
         AND DueDate='2002-01-29'";  
  
/* Execute the query. */  
$stmt = sqlsrv_query( $conn, $tsql);  
if ( $stmt )  
{  
     echo "Statement executed.\n";  
}   
else   
{  
     echo "Error in statement execution.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Iterate through the result set printing a row of data upon each  
iteration.*/  
while( $row = sqlsrv_fetch_array( $stmt, SQLSRV_FETCH_NUMERIC))  
{  
     echo "ProdID: ".$row[0]."\n";  
     echo "UnitPrice: ".$row[1]."\n";  
     echo "StockedQty: ".$row[2]."\n";  
     echo "-----------------\n";  
}  
  
/* Free statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
?>  
De sqlsrv_fetch_array-functie retourneert altijd gegevens volgens de standaard PHP-gegevenstypen. Zie How to: Specify PHP Data Types voor informatie over het opgeven van het PHP-gegevenstype.
Als een veld zonder naam wordt opgehaald, is de associatieve sleutel voor het matrixelement een lege tekenreeks (""). Zie sqlsrv_fetch_array voor meer informatie.
Zie ook
API-verwijzing voor SQLSRV-stuurprogramma's
Over codevoorbeelden in de documentatie
Programmeerhandleiding voor de Microsoft-stuurprogramma's voor PHP voor SQL Server