sqlsrv_fetch_array
Mengambil baris data berikutnya sebagai array terindeks numerik, array asosiatif, atau keduanya.
Sintaks
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])
Parameter
$stmt: Sumber daya pernyataan yang sesuai dengan pernyataan yang dijalankan.
$fetchType [OPSIONAL]: Konstanta yang telah ditentukan sebelumnya. Parameter ini dapat mengambil salah satu nilai yang tercantum dalam tabel berikut:
Nilai | Deskripsi |
---|---|
SQLSRV_FETCH_NUMERIC | Baris data berikutnya dikembalikan sebagai array numerik. |
SQLSRV_FETCH_ASSOC | Baris data berikutnya dikembalikan sebagai array asosiatif. Kunci array adalah nama kolom dalam tataan hasil. |
SQLSRV_FETCH_BOTH | Baris data berikutnya dikembalikan sebagai array numerik dan array asosiatif. Ini adalah nilai default. |
baris [OPSIONAL]: Ditambahkan dalam versi 1.1. Salah satu nilai berikut, menentukan baris untuk diakses dalam tataan hasil yang menggunakan kursor yang dapat digulir. (Ketika baris ditentukan, fetchtype harus ditentukan secara eksplisit, bahkan jika Anda menentukan nilai default.)
- SQLSRV_SCROLL_NEXT
- SQLSRV_SCROLL_PRIOR
- SQLSRV_SCROLL_FIRST
- SQLSRV_SCROLL_LAST
- SQLSRV_SCROLL_ABSOLUTE
- SQLSRV_SCROLL_RELATIVE
Untuk informasi selengkapnya tentang nilai-nilai ini, lihat Menentukan Jenis Kursor dan Memilih Baris. Dukungan kursor yang dapat digulir ditambahkan di driver Microsoft versi 1.1 untuk PHP untuk SQL Server.
offset [OPSIONAL]: Digunakan dengan SQLSRV_SCROLL_ABSOLUTE dan SQLSRV_SCROLL_RELATIVE untuk menentukan baris yang akan diambil. Catatan pertama dalam tataan hasil adalah 0.
Tampilkan Nilai
Jika baris data diambil, array akan dikembalikan. Jika tidak ada lagi baris untuk diambil, null dikembalikan. Jika terjadi kesalahan, false akan dikembalikan.
Berdasarkan nilai parameter $fetchType, array yang dikembalikan dapat berupa array yang diindeks secara numerik, array asosiatif, atau keduanya. Secara default, array dengan kunci numerik dan asosiatif dikembalikan. Jenis data nilai dalam array yang dikembalikan akan menjadi jenis data PHP default. Untuk informasi tentang jenis data PHP default, lihat Jenis Data PHP Default.
Keterangan
Jika kolom tanpa nama dikembalikan, kunci asosiatif untuk elemen array akan menjadi string kosong (""). Misalnya, pertimbangkan pernyataan Transact-SQL ini yang menyisipkan nilai ke dalam tabel database dan mengambil kunci primer yang dihasilkan server:
INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);
SELECT SCOPE_IDENTITY()
Jika kumpulan hasil yang dikembalikan oleh SELECT SCOPE_IDENTITY()
bagian dari pernyataan ini diambil sebagai array asosiatif, kunci untuk nilai yang dikembalikan akan menjadi string kosong ("") karena kolom yang dikembalikan tidak memiliki nama. Untuk menghindari hal ini, Anda dapat mengambil hasilnya sebagai array numerik, atau Anda dapat menentukan nama untuk kolom yang dikembalikan dalam pernyataan Transact-SQL. Pernyataan berikut adalah salah satu cara untuk menentukan nama kolom di Transact-SQL:
SELECT SCOPE_IDENTITY() AS PictureID
Jika kumpulan hasil berisi beberapa kolom tanpa nama, nilai kolom terakhir yang tidak disebutkan namanya akan ditetapkan ke kunci string kosong ("").
Contoh array asosiatif
Contoh berikut mengambil setiap baris kumpulan hasil sebagai array asosiatif. Contoh mengasumsikan bahwa SQL Server dan database AdventureWorks diinstal di komputer lokal. Semua output ditulis ke konsol saat contoh dijalankan dari baris perintah.
<?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);
?>
Contoh array terindeks
Contoh berikut mengambil setiap baris hasil yang ditetapkan sebagai array yang diindeks secara numerik.
Contoh mengambil informasi produk dari tabel Purchasing.PurchaseOrderDetail database AdventureWorks untuk produk yang memiliki tanggal tertentu dan jumlah stok (StockQty) kurang dari nilai yang ditentukan.
Contoh mengasumsikan bahwa SQL Server dan database AdventureWorks diinstal di komputer lokal. Semua output ditulis ke konsol saat contoh dijalankan dari baris perintah.
<?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);
?>
Fungsi sqlsrv_fetch_array selalu mengembalikan data sesuai dengan Jenis Data PHP Default. Untuk informasi tentang cara menentukan jenis data PHP, lihat Cara: Menentukan Jenis Data PHP.
Jika bidang tanpa nama diambil, kunci asosiatif untuk elemen array akan menjadi string kosong (""). Untuk informasi selengkapnya, lihat sqlsrv_fetch_array.
Lihat Juga
Tentang Contoh Kode dalam Dokumentasi
Panduan Pemrograman untuk Driver Microsoft untuk PHP untuk SQL Server