Aracılığıyla paylaş


sqlsrv_fetch_array

PHP sürücüsünü indirme

Sonraki veri satırını sayısal olarak dizinlenmiş bir dizi, ilişkilendirici dizi veya her ikisi olarak alır.

Sözdizimi

  
sqlsrv_fetch_array( resource $stmt[, int $fetchType [, row[, ]offset]])  

Parametreler

$stmt: Yürütülen bir deyime karşılık gelen deyim kaynağı.

$fetchType [İSTEĞE BAĞLI]: Önceden tanımlanmış bir sabit. Bu parametre, aşağıdaki tabloda listelenen değerlerden birini alabilir:

Değer Açıklama
SQLSRV_FETCH_NUMERIC Sonraki veri satırı sayısal bir dizi olarak döndürülür.
SQLSRV_FETCH_ASSOC Sonraki veri satırı ilişkilendirici bir dizi olarak döndürülür. Dizi anahtarları, sonuç kümesindeki sütun adlarıdır.
SQLSRV_FETCH_BOTH Sonraki veri satırı hem sayısal dizi hem de ilişkilendirici dizi olarak döndürülür. Bu varsayılan değerdir.

satır [İSTEĞE BAĞLI]: Sürüm 1.1'de eklendi. Kaydırılabilir imleç kullanan bir sonuç kümesinde erişilmesi gereken satırı belirten aşağıdaki değerlerden biri. ( Satır belirtildiğinde, varsayılan değeri belirtseniz bile fetchtype açıkça belirtilmelidir.)

  • SQLSRV_SCROLL_NEXT
  • SQLSRV_SCROLL_PRIOR
  • SQLSRV_SCROLL_FIRST
  • SQLSRV_SCROLL_LAST
  • SQLSRV_SCROLL_ABSOLUTE
  • SQLSRV_SCROLL_RELATIVE

Bu değerler hakkında daha fazla bilgi için bkz. İmleç Türü Belirtme ve Satır Seçme. Kaydırılabilir imleç desteği, SQL Server için PHP için Microsoft Sürücüleri'nin 1.1 sürümüne eklendi.

offset [OPTIONAL]: Alınacak satırı belirtmek için SQLSRV_SCROLL_ABSOLUTE ve SQLSRV_SCROLL_RELATIVE ile kullanılır. Sonuç kümesindeki ilk kayıt 0'dır.

Dönüş Değeri

Bir veri satırı alınırsa, bir dizi döndürülür. Alınacak başka satır yoksa null döndürülür. Hata oluşursa false döndürülür.

$fetchType parametresinin değerine bağlı olarak, döndürülen dizi sayısal olarak dizinlenmiş bir dizi, ilişkilendirilebilir bir dizi veya her ikisi de olabilir. Varsayılan olarak, hem sayısal hem de ilişkilendirici anahtarlara sahip bir dizi döndürülür. Döndürülen dizideki bir değerin veri türü varsayılan PHP veri türü olacaktır. Varsayılan PHP veri türleri hakkında bilgi için bkz. Varsayılan PHP Veri Türleri.

Açıklamalar

Adı olmayan bir sütun döndürülürse, dizi öğesinin ilişkilendirilebilir anahtarı boş bir dize ("") olur. Örneğin, bir veritabanı tablosuna değer ekleyen ve sunucu tarafından oluşturulan birincil anahtarı alan bu Transact-SQL deyimini göz önünde bulundurun:

INSERT INTO Production.ProductPhoto (LargePhoto) VALUES (?);  
SELECT SCOPE_IDENTITY()

Bu deyimin bölümü tarafından SELECT SCOPE_IDENTITY() döndürülen sonuç kümesi ilişkilendirilebilir bir dizi olarak alınırsa, döndürülen sütunun adı olmadığından döndürülen değerin anahtarı boş bir dize ("") olur. Bunu önlemek için sonucu sayısal bir dizi olarak alabilir veya Transact-SQL deyiminde döndürülen sütun için bir ad belirtebilirsiniz. Aşağıdaki deyim, Transact-SQL'de sütun adı belirtmenin bir yoludur:

SELECT SCOPE_IDENTITY() AS PictureID

Sonuç kümesi adları olmayan birden çok sütun içeriyorsa, son adlandırılmamış sütunun değeri boş dize ("") anahtarına atanır.

İlişkili dizi örneği

Aşağıdaki örnek, bir sonuç kümesinin her satırını ilişkilendirici bir dizi olarak alır. Örnekte SQL Server ve AdventureWorks veritabanının yerel bilgisayarda yüklü olduğu varsayılır. Örnek komut satırından çalıştırıldığında tüm çıkış konsola yazılır.

<?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);  
?>  

Dizine alınan dizi örneği

Aşağıdaki örnek, sonuç kümesinin her satırını sayısal olarak dizinlenmiş bir dizi olarak alır.

Örnek, belirtilen bir tarihe ve belirtilen değerden daha az stoklanmış miktara (StockQty) sahip ürünler için AdventureWorks veritabanının Purchaseing.PurchaseOrderDetail tablosundan ürün bilgilerini alır.

Örnekte SQL Server ve AdventureWorks veritabanının yerel bilgisayarda yüklü olduğu varsayılır. Örnek komut satırından çalıştırıldığında tüm çıkış konsola yazılır.

<?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);  
?>  

sqlsrv_fetch_array işlevi her zaman Varsayılan PHP Veri Türlerine göre veri döndürür. PHP veri türünü belirtme hakkında bilgi için bkz . Nasıl yapılır: PHP Veri Türlerini Belirtme.

Adı olmayan bir alan alınırsa, dizi öğesinin ilişkilendirilebilir anahtarı boş bir dize ("") olur. Daha fazla bilgi için bkz. sqlsrv_fetch_array.

Ayrıca Bkz.

SQLSRV Sürücüsü API Başvurusu

Veri Alınıyor

Belgede Kod Örnekleri Hakkında

PHP için Microsoft SQL Server Sürücüleri Programlama Kılavuzu