Bagikan melalui


sqlsrv_fetch_array

Unduh driver PHP

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

Referensi API Driver SQLSRV

Mengambil Data

Tentang Contoh Kode dalam Dokumentasi

Panduan Pemrograman untuk Driver Microsoft untuk PHP untuk SQL Server