Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következő adatsort numerikusan indexelt tömbként, asszociatív tömbként vagy mindkettőként kéri le.
Szemantika
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])
Paraméterek
$stmt: Egy végrehajtott utasításnak megfelelő utasításerőforrás.
$fetchType [NEM KÖTELEZŐ]: Előre definiált állandó. Ez a paraméter a következő táblázatban felsorolt értékek egyikét veheti fel:
| Érték | Leírás |
|---|---|
| SQLSRV_FETCH_NUMERIC | A következő adatsor numerikus tömbként lesz visszaadva. |
| SQLSRV_FETCH_ASSOC | A következő adatsor asszociatív tömbként lesz visszaadva. A tömbkulcsok az eredményhalmaz oszlopnevei. |
| SQLSRV_FETCH_BOTH | A következő adatsor numerikus és asszociatív tömbként is visszaadható. Ez az alapértelmezett érték. |
sor [NEM KÖTELEZŐ]: Hozzáadva az 1.1-es verzióhoz. Az alábbi értékek egyike, amely egy görgethető kurzort használó eredményhalmazban adja meg a elérendő sort. (Ha sor van megadva, a fetchtype értéket explicit módon kell megadni, még akkor is, ha az alapértelmezett értéket adja meg.)
- SQLSRV_SCROLL_NEXT
- SQLSRV_SCROLL_PRIOR
- SQLSRV_SCROLL_FIRST
- SQLSRV_SCROLL_LAST
- SQLSRV_SCROLL_ABSOLUTE
- SQLSRV_SCROLL_RELATIVE
Ezekről az értékekről további információt a Kurzor típusának megadása és a Sorok kijelölése című témakörben talál. A görgethető kurzor támogatása a Microsoft Drivers for PHP for SQL Server 1.1-es verziójában lett hozzáadva.
eltolás [NEM KÖTELEZŐ]: SQLSRV_SCROLL_ABSOLUTE és SQLSRV_SCROLL_RELATIVE használatával adja meg a lekérendő sort. Az eredményhalmaz első rekordja 0.
Visszaadott érték
Ha beolvas egy adatsort, a rendszer egy tömböt ad vissza. Ha nincs több beolvasandó sor, a rendszer null értéket ad vissza. Hiba esetén a függvény hamis értéket ad vissza.
A $fetchType paraméter értéke alapján a visszaadott tömb lehet numerikusan indexelt tömb, asszociatív tömb vagy mindkettő. Alapértelmezés szerint a függvény numerikus és asszociatív kulcsokat is tartalmazó tömböt ad vissza. A visszaadott tömbben egy érték adattípusa lesz az alapértelmezett PHP-adattípus. Az alapértelmezett PHP-adattípusokról további információt az Alapértelmezett PHP-adattípusok című témakörben talál.
Megjegyzések
Ha egy név nélküli oszlopot ad vissza, a tömbelem asszociatív kulcsa egy üres sztring (""). Vegyük például ezt a Transact-SQL utasítást, amely egy értéket szúr be egy adatbázistáblába, és lekéri a kiszolgáló által létrehozott elsődleges kulcsot:
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
SELECT SCOPE_IDENTITY()
Ha az utasítás része által SELECT SCOPE_IDENTITY() visszaadott eredményhalmaz asszociatív tömbként lesz lekérve, a visszaadott érték kulcsa egy üres sztring ("") lesz, mivel a visszaadott oszlopnak nincs neve. Ennek elkerülése érdekében lekérheti az eredményt numerikus tömbként, vagy megadhatja a visszaadott oszlop nevét a Transact-SQL utasításban. Az alábbi utasítással megadhat egy oszlopnevet a Transact-SQL-ben:
SELECT SCOPE_IDENTITY() AS PictureID
Ha egy eredményhalmaz több, név nélküli oszlopot tartalmaz, az utolsó névtelen oszlop értéke hozzá lesz rendelve az üres sztring ("") kulcshoz.
Asszociatív tömb példa
Az alábbi példa egy eredményhalmaz minden sorát asszociatív tömbként kéri le. A példa feltételezi, hogy az SQL Server és az AdventureWorks adatbázis telepítve van a helyi számítógépen. A rendszer minden kimenetet a konzolra ír, amikor a példa a parancssorból fut.
<?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);
?>
Példa indexelt tömbre
Az alábbi példa egy eredményhalmaz minden sorát numerikusan indexelt tömbként kéri le.
A példa az AdventureWorks adatbázis Purchaseing.PurchaseOrderDetail táblájából kéri le a termékinformációkat olyan termékek esetében, amelyek egy megadott dátummal és egy megadott értéknél kisebb készletezett mennyiségben (StockQty) vannak tárolva.
A példa feltételezi, hogy az SQL Server és az AdventureWorks adatbázis telepítve van a helyi számítógépen. A rendszer minden kimenetet a konzolra ír, amikor a példa a parancssorból fut.
<?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);
?>
A sqlsrv_fetch_array függvény mindig az alapértelmezett PHP-adattípusoknak megfelelően adja vissza az adatokat. A PHP-adattípus megadásáról további információt a Hogyan lehet: PHP-adattípusok megadása című témakörben talál.
Ha egy név nélküli mezőt kér le, a tömbelem asszociatív kulcsa egy üres sztring (""). További információ: sqlsrv_fetch_array.
Lásd még:
A dokumentációban szereplő példakódokkal kapcsolatos
MICROSOFT Drivers for PHP az SQL Serverhez programozási útmutató