PDOStatement::fetch
Mengambil baris dari kumpulan hasil.
Sintaks
mixed PDOStatement::fetch ([ $fetch_style[, $cursor_orientation[, $cursor_offset]]] );
Parameter
$fetch_style: Simbol opsional (bilangan bulat) yang menentukan format data baris. Lihat bagian Keterangan untuk daftar nilai yang mungkin untuk $fetch_style. Defaultnya adalah PDO::FETCH_BOTH. $ fetch_style dalam metode pengambilan akan mengambil alih $fetch_style yang ditentukan dalam metode PDO::query.
$cursor_orientation: Simbol opsional (bilangan bulat) yang menunjukkan baris untuk diambil saat pernyataan persiapan menentukan PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL
. Lihat bagian Keterangan untuk daftar nilai yang mungkin untuk $cursor_orientation. Lihat PDO::p repare untuk sampel menggunakan kursor yang dapat digulir.
$cursor_offset: Simbol opsional (bilangan bulat) yang menentukan baris yang akan diambil ketika $cursor_orientation adalah PDO::FETCH_ORI_ABS atau PDO::FETCH_ORI_REL dan PDO::ATTR_CURSOR adalah PDO::CURSOR_SCROLL.
Tampilkan Nilai
Nilai campuran yang mengembalikan baris atau salah.
Keterangan
Kursor secara otomatis dimajukan saat pengambilan dipanggil. Tabel berikut berisi daftar kemungkinan nilai $fetch_style .
$fetch_style | Deskripsi |
---|---|
PDO::FETCH_ASSOC | Menentukan array yang diindeks menurut nama kolom. |
PDO::FETCH_BOTH | Menentukan array yang diindeks berdasarkan nama kolom dan urutan berbasis 0. Ini adalah default. |
PDO::FETCH_BOUND | Mengembalikan true dan menetapkan nilai seperti yang ditentukan oleh PDOStatement::bindColumn. |
PDO::FETCH_CLASS | Membuat instans dan memetakan kolom ke properti bernama. Panggil PDOStatement::setFetchMode sebelum memanggil ambil. |
PDO::FETCH_INTO | Menyegarkan instans kelas yang diminta. Panggil PDOStatement::setFetchMode sebelum memanggil ambil. |
PDO::FETCH_LAZY | Membuat nama variabel selama akses dan membuat objek yang tidak disebutkan namanya. |
PDO::FETCH_NUM | Menentukan array yang diindeks oleh urutan kolom berbasis nol. |
PDO::FETCH_OBJ | Menentukan objek yang tidak disebutkan namanya dengan nama properti yang memetakan ke nama kolom. |
Jika kursor berada di akhir kumpulan hasil (baris terakhir telah diambil dan kursor telah maju melewati batas kumpulan hasil) dan jika kursor hanya-terusan (PDO::ATTR_CURSOR = PDO::CURSOR_FWDONLY), panggilan pengambilan berikutnya akan gagal.
Jika kursor dapat digulir (PDO::ATTR_CURSOR = PDO::CURSOR_SCROLL), ambil akan memindahkan kursor dalam batas tataan hasil. Tabel berikut berisi daftar kemungkinan nilai $cursor_orientation .
$cursor_orientation | Deskripsi |
---|---|
PDO::FETCH_ORI_NEXT | Mengambil baris berikutnya. Ini adalah default. |
PDO::FETCH_ORI_PRIOR | Mengambil baris sebelumnya. |
PDO::FETCH_ORI_FIRST | Mengambil baris pertama. |
PDO::FETCH_ORI_LAST | Mengambil baris terakhir. |
PDO::FETCH_ORI_ABS, num | Mengambil baris yang diminta dalam $cursor_offset menurut nomor baris. |
PDO::FETCH_ORI_REL, num | Mengambil baris yang diminta dalam $cursor_offset berdasarkan posisi relatif dari posisi saat ini. |
Jika nilai yang ditentukan untuk $cursor_offset atau $cursor_orientation menghasilkan posisi di luar batas tataan hasil, pengambilan akan gagal.
Dukungan untuk PDO ditambahkan di Driver Microsoft versi 2.0 untuk PHP untuk SQL Server.
Contoh
<?php
$server = "(local)";
$database = "AdventureWorks";
$conn = new PDO( "sqlsrv:server=$server ; Database = $database", "", "");
print( "\n---------- PDO::FETCH_CLASS -------------\n" );
$stmt = $conn->query( "select * from HumanResources.Department order by GroupName" );
class cc {
function __construct( $arg ) {
echo "$arg";
}
function __toString() {
return $this->DepartmentID . "; " . $this->Name . "; " . $this->GroupName;
}
}
$stmt->setFetchMode(PDO::FETCH_CLASS, 'cc', array( "arg1 " ));
while ( $row = $stmt->fetch(PDO::FETCH_CLASS)) {
print($row . "\n");
}
print( "\n---------- PDO::FETCH_INTO -------------\n" );
$stmt = $conn->query( "select * from HumanResources.Department order by GroupName" );
$c_obj = new cc( '' );
$stmt->setFetchMode(PDO::FETCH_INTO, $c_obj);
while ( $row = $stmt->fetch(PDO::FETCH_INTO)) {
echo "$c_obj\n";
}
print( "\n---------- PDO::FETCH_ASSOC -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$result = $stmt->fetch( PDO::FETCH_ASSOC );
print_r( $result );
print( "\n---------- PDO::FETCH_NUM -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$result = $stmt->fetch( PDO::FETCH_NUM );
print_r ($result );
print( "\n---------- PDO::FETCH_BOTH -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$result = $stmt->fetch( PDO::FETCH_BOTH );
print_r( $result );
print( "\n---------- PDO::FETCH_LAZY -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$result = $stmt->fetch( PDO::FETCH_LAZY );
print_r( $result );
print( "\n---------- PDO::FETCH_OBJ -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$result = $stmt->fetch( PDO::FETCH_OBJ );
print $result->Name;
print( "\n \n" );
print( "\n---------- PDO::FETCH_BOUND -------------\n" );
$stmt = $conn->query( "select * from Person.ContactType where ContactTypeID < 5 " );
$stmt->bindColumn('Name', $name);
$result = $stmt->fetch( PDO::FETCH_BOUND );
print $name;
print( "\n \n" );
?>