Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Saat menggunakan driver PDO_SQLSRV, Anda dapat menentukan jenis data PHP saat mengambil data dari server dengan PDOStatement::bindColumn dan PDOStatement::bindParam. Lihat PDOStatement::bindColumn dan PDOStatement::bindParam untuk informasi selengkapnya.
Langkah-langkah berikut merangkum cara menentukan jenis data PHP saat mengambil data dari server menggunakan driver SQLSRV:
Siapkan dan jalankan kueri Transact-SQL dengan sqlsrv_query atau kombinasi sqlsrv_execute sqlsrv_prepare/.
Buat baris data tersedia untuk dibaca dengan sqlsrv_fetch.
Ambil data bidang dari baris yang dikembalikan menggunakan sqlsrv_get_field dengan jenis data PHP yang diinginkan yang ditentukan sebagai parameter ketiga opsional. Jika parameter ketiga opsional tidak ditentukan, data dikembalikan sesuai dengan jenis PHP default. Untuk informasi tentang jenis pengembalian PHP default, lihat Jenis Data PHP Default.
Untuk informasi tentang konstanta yang digunakan untuk menentukan jenis data PHP, lihat bagian PHPTYPEs dari Konstanta (Driver Microsoft untuk PHP untuk SQL Server).
Contoh
Contoh berikut mengambil baris dari tabel Production.ProductReview database AdventureWorks. Di setiap baris yang dikembalikan, bidang ReviewDate diambil sebagai string dan bidang Komentar diambil sebagai aliran. Data aliran ditampilkan dengan menggunakan fungsi fpassthru PHP.
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 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);
?>
Dalam contoh, mengambil bidang kedua (ReviewDate) sebagai string mempertahankan akurasi milidetik dari jenis data DATETIME SQL Server. Secara default, jenis data DATETIME SQL Server diambil sebagai objek DateTime PHP di mana akurasi milidetik hilang.
Mengambil bidang keempat (Komentar) sebagai aliran adalah untuk tujuan demonstrasi. Secara default, jenis data SQL Server nvarchar(3850) diambil sebagai string, yang dapat diterima untuk sebagian besar situasi.
Catatan
Fungsi sqlsrv_field_metadata menyediakan cara untuk mendapatkan informasi bidang, termasuk informasi jenis, sebelum menjalankan kueri.
Lihat Juga
Tentang Contoh Kode dalam Dokumentasi
Cara: Mengambil Parameter Output Menggunakan Driver SQLSRV
Cara: Mengambil Parameter Input dan Output Menggunakan Driver SQLSRV