Aracılığıyla paylaş


Nasıl yapılır: PHP Veri Türlerini Belirtme

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

PDO_SQLSRV sürücüsünü kullanırken PDOStatement::bindColumn ve PDOStatement::bindParam ile sunucudan veri alırken PHP veri türünü belirtebilirsiniz. Daha fazla bilgi için bkz. PDOStatement::bindColumn ve PDOStatement::bindParam .

Aşağıdaki adımlar, SQLSRV sürücüsünü kullanarak sunucudan veri alırken PHP veri türlerinin nasıl belirtileceğini özetler:

  1. sqlsrv_query veya sqlsrv_prepare ve sqlsrv_execute birleşimiyle bir Transact-SQL sorgusu ayarlayın ve yürütün.

  2. bir veri satırını sqlsrv_fetch ile okumak için kullanılabilir hale getirin.

  3. İsteğe bağlı üçüncü parametre olarak belirtilen istenen PHP veri türüne sahip sqlsrv_get_field kullanarak döndürülen bir satırdan alan verilerini alın. İsteğe bağlı üçüncü parametre belirtilmezse, veriler varsayılan PHP türlerine göre döndürülür. Varsayılan PHP dönüş türleri hakkında bilgi için bkz. Varsayılan PHP Veri Türleri.

    PHP veri türünü belirtmek için kullanılan sabitler hakkında bilgi için Sabitler(SQL Server için PHP için Microsoft Sürücüleri) öğesinin PHPTYPEs bölümüne bakın.

Example

Aşağıdaki örnek AdventureWorks veritabanının Production.ProductReview tablosundan satırları alır. Döndürülen her satırda ReviewDate alanı dize olarak alınır ve Açıklamalar alanı akış verisi olarak alınır. Akış verileri PHP fpassthru işlevi kullanılarak görüntülenir.

Ö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 the Transact-SQL query. */  
$tsql = "SELECT ReviewerName,   
                ReviewDate,  
                Rating,   
                Comments   
         FROM Production.ProductReview   
         WHERE ProductID = ?   
         ORDER BY ReviewDate DESC";  
  
/* Set the parameter value. */  
$productID = 709;  
$params = array( $productID);  
  
/* Execute the query. */  
$stmt = sqlsrv_query($conn, $tsql, $params);  
if( $stmt === false )  
{  
     echo "Error in statement execution.\n";  
     die( print_r( sqlsrv_errors(), true));  
}  
  
/* Retrieve and display the data. The first and third fields are  
retrieved according to their default types, strings. The second field  
is retrieved as a string with 8-bit character encoding. The fourth  
field is retrieved as a stream with 8-bit character encoding.*/  
while ( sqlsrv_fetch( $stmt))  
{  
   echo "Name: ".sqlsrv_get_field( $stmt, 0 )."\n";  
   echo "Date: ".sqlsrv_get_field( $stmt, 1,   
                       SQLSRV_PHPTYPE_STRING( SQLSRV_ENC_CHAR))."\n";  
   echo "Rating: ".sqlsrv_get_field( $stmt, 2 )."\n";  
   echo "Comments: ";  
   $comments = sqlsrv_get_field( $stmt, 3,   
                            SQLSRV_PHPTYPE_STREAM(SQLSRV_ENC_CHAR));  
   fpassthru( $comments);  
   echo "\n";   
}  
  
/* Free statement and connection resources. */  
sqlsrv_free_stmt( $stmt);  
sqlsrv_close( $conn);  
?>  

Örnekte, ikinci alanın (ReviewDate) dize olarak alınması SQL Server DATETIME veri türünün milisaniye doğruluğunu korur. Varsayılan olarak, SQL Server DATETIME veri türü, milisaniyelik doğruluğun kaybolduğu bir PHP DateTime nesnesi olarak alınır.

Dördüncü alanı (Açıklamalar) akış olarak almak tanıtım amaçlıdır. Varsayılan olarak, nvarchar(3850) SQL Server veri türü bir dize olarak alınır ve çoğu durumda kabul edilebilir.

Uyarı

sqlsrv_field_metadata işlevi, bir sorguyu yürütmeden önce tür bilgileri de dahil olmak üzere alan bilgilerini almak için bir yol sağlar.

Ayrıca Bkz.

Veri Alınıyor

Belgelerde Kod Örnekleri Hakkında

Nasıl yapılır: SQLSRV Sürücüsünü Kullanarak Çıkış Parametrelerini Alma

Nasıl yapılır: SQLSRV Sürücüsünü Kullanarak Giriş ve Çıkış Parametrelerini Alma