Bagikan melalui


Cara: Menentukan Jenis Data PHP

Unduh driver PHP

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 ini meringkas cara menentukan jenis data PHP saat mengambil data dari server menggunakan driver SQLSRV:

  1. Siapkan dan jalankan kueri Transact-SQL dengan sqlsrv_query atau kombinasi sqlsrv_prepare/sqlsrv_execute.

  2. Buat baris data tersedia untuk dibaca dengan sqlsrv_fetch.

  3. 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 konstanta (Driver Microsoft untuk PHP untuk SQL Server).

Contoh

Contoh berikut mengambil baris dari tabel Production.ProductReview dari 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.

Contohnya 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 SQL Server DATETIME. Secara default, jenis data SQL Server DATETIME 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

Mengambil Data

Tentang Contoh Kode dalam Dokumentasi

Cara: Mengambil Parameter Keluaran Menggunakan Driver SQLSRV

Cara: Mengambil Parameter Masukan dan Keluaran Menggunakan Driver SQLSRV