Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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:
sqlsrv_query veya sqlsrv_prepare ve sqlsrv_execute birleşimiyle bir Transact-SQL sorgusu ayarlayın ve yürütün.
bir veri satırını sqlsrv_fetch ile okumak için kullanılabilir hale getirin.
İ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.
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