Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Načte další řádek dat jako číselně indexovanou matici, asociativní pole nebo obojí.
Syntaxe
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])
Parametry
$stmt: Prostředek příkazu odpovídající provedenému příkazu.
$fetchType [VOLITELNÉ]: Předdefinovaná konstanta. Tento parametr může převzít jednu z hodnot uvedených v následující tabulce:
| Hodnota | Popis |
|---|---|
| SQLSRV_FETCH_NUMERIC | Další řádek dat se vrátí jako číselná matice. |
| SQLSRV_FETCH_ASSOC | Další řádek dat se vrátí jako asociativní pole. Maticové klíče jsou názvy sloupců v sadě výsledků. |
| SQLSRV_FETCH_BOTH | Další řádek dat se vrátí jako číselná matice i asociativní matice. Toto je výchozí hodnota. |
řádek [VOLITELNÉ]: Přidáno ve verzi 1.1. Jedna z následujících hodnot určující řádek pro přístup k sadě výsledků, která používá posouvání kurzoru. (Je-li zadán řádek , musí být explicitně zadán typ načtení , i když zadáte výchozí hodnotu.)
- SQLSRV_SCROLL_NEXT
- SQLSRV_SCROLL_PRIOR
- SQLSRV_SCROLL_FIRST
- SQLSRV_SCROLL_LAST
- SQLSRV_SCROLL_ABSOLUTE
- SQLSRV_SCROLL_RELATIVE
Další informace o těchto hodnotách naleznete v tématu Zadání typu kurzoru a výběru řádků. Podpora posouvání kurzoru byla přidána ve verzi 1.1 ovladačů Microsoft pro PHP pro SQL Server.
offset [OPTIONAL]: Používá se s SQLSRV_SCROLL_ABSOLUTE a SQLSRV_SCROLL_RELATIVE k určení řádku, který se má načíst. První záznam v sadě výsledků je 0.
Návratová hodnota
Pokud se načte řádek dat, vrátí se pole . Pokud nejsou k dispozici žádné další řádky k načtení, vrátí se hodnota null . Pokud dojde k chybě, vrátí se false .
Vrácená matice může být na základě hodnoty parametru $fetchType číselně indexovaná matice, asociativní matice nebo obojí. Ve výchozím nastavení se vrátí pole s číselnými i asociativními klíči. Datový typ hodnoty ve vráceném poli bude výchozím datovým typem PHP. Informace o výchozích datových typech PHP naleznete v tématu Výchozí datové typy PHP.
Poznámky
Pokud se vrátí sloupec bez názvu, asociativní klíč pro prvek pole bude prázdný řetězec (""). Představte si například tento příkaz Transact-SQL, který vloží hodnotu do databázové tabulky a načte serverově vygenerovaný primární klíč:
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
SELECT SCOPE_IDENTITY()
Pokud je sada výsledků vrácená SELECT SCOPE_IDENTITY() částí tohoto příkazu načtena jako asociativní pole, klíč pro vrácenou hodnotu bude prázdný řetězec (""), protože vrácený sloupec nemá žádný název. Abyste tomu předešli, můžete výsledek načíst jako číselnou matici nebo můžete zadat název vráceného sloupce v příkazu Transact-SQL. Následující příkaz je jedním ze způsobů, jak zadat název sloupce v jazyce Transact-SQL:
SELECT SCOPE_IDENTITY() AS PictureID
Pokud sada výsledků obsahuje více sloupců bez názvů, přiřadí se hodnota posledního nepojmenovaného sloupce k prázdnému řetězci ("").
Příklad asociativního pole
Následující příklad načte každý řádek sady výsledků jako asociativní pole. Příklad předpokládá, že SQL Server a databáze AdventureWorks jsou nainstalovány v místním počítači. Při spuštění příkladu z příkazového řádku se veškerý výstup zapíše do konzoly.
<?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říklad indexovaného pole
Následující příklad načte každý řádek sady výsledků jako číselně indexované pole.
Příklad načte informace o produktu z tabulky Purchaseing.PurchaseOrderDetail databáze AdventureWorks pro produkty, které mají zadané datum a skladované množství (StockQty) menší než zadaná hodnota.
Příklad předpokládá, že SQL Server a databáze AdventureWorks jsou nainstalovány v místním počítači. Při spuštění příkladu z příkazového řádku se veškerý výstup zapíše do konzoly.
<?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);
?>
Funkce sqlsrv_fetch_array vždy vrací data podle výchozích datových typů PHP. Informace o tom, jak zadat datový typ PHP, naleznete v tématu Postupy: Určení datových typů PHP.
Pokud se načte pole bez názvu, asociativní klíč pro prvek pole bude prázdný řetězec (""). Další informace najdete v tématu sqlsrv_fetch_array.
Viz také
Referenční rozhraní API ovladače
O příkladech kódu v dokumentaci
Průvodce programováním pro ovladače Microsoftu pro PHP pro SQL Server