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.
Menjalankan kueri SQL dan mengembalikan tataan hasil sebagai objek PDOStatement.
Sintaks
PDOStatement PDO::query ($statement[, $fetch_style);
Parameter
$statement: Pernyataan SQL yang ingin Anda jalankan.
$fetch_style: Instruksi opsional tentang cara melakukan kueri. Lihat bagian Keterangan untuk detail selengkapnya. $ fetch_style dalam PDO::query dapat ditimpa dengan $fetch_style di PDO::fetch.
Tampilkan Nilai
Jika panggilan berhasil, PDO::query mengembalikan objek PDOStatement. Jika panggilan gagal, PDO::query melempar objek PDOException atau mengembalikan false, tergantung pada pengaturan PDO::ATTR_ERRMODE.
Pengecualian
PDOException.
Keterangan
Kueri yang dijalankan dengan PDO::query dapat menjalankan pernyataan yang disiapkan atau secara langsung, tergantung pada pengaturan PDO::SQLSRV_ATTR_DIRECT_QUERY. Untuk informasi selengkapnya, lihat Eksekusi Pernyataan Langsung dan Eksekusi Pernyataan yang Disiapkan di Driver PDO_SQLSRV.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT juga mempengaruhi perilaku PDO::exec; untuk informasi selengkapnya, lihat PDO::setAttribute.
Anda dapat menentukan opsi berikut untuk $fetch_style.
Gaya | Deskripsi |
---|---|
PDO::FETCH_COLUMN, num | Kueri untuk data di kolom yang ditentukan. Kolom pertama dalam tabel adalah kolom 0. |
PDO::FETCH_CLASS, 'classname', array( arglist ) | Membuat instans kelas dan menetapkan nama kolom ke properti di kelas . Jika konstruktor kelas mengambil satu atau beberapa parameter, Anda juga dapat meneruskan arglist. |
PDO::FETCH_CLASS, 'classname' | Menetapkan nama kolom ke properti di kelas yang sudah ada. |
Panggil PDOStatement::closeCursor untuk merilis sumber daya database yang terkait dengan objek PDOStatement sebelum memanggil PDO::query lagi.
Anda dapat menutup objek PDOStatement dengan mengaturnya ke null.
Jika semua data dalam kumpulan hasil tidak diambil, panggilan PDO::query berikutnya tidak akan gagal.
Dukungan untuk PDO ditambahkan di Driver Microsoft versi 2.0 untuk PHP untuk SQL Server.
Contoh kueri
Contoh ini memperlihatkan beberapa kueri.
<?php
$database = "AdventureWorks";
$conn = new PDO( "sqlsrv:server=(local) ; Database = $database", "", "");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$conn->setAttribute( PDO::SQLSRV_ATTR_QUERY_TIMEOUT, 1 );
$query = 'select * from Person.ContactType';
// simple query
$stmt = $conn->query( $query );
while ( $row = $stmt->fetch( PDO::FETCH_ASSOC ) ){
print_r( $row['Name'] ."\n" );
}
echo "\n........ query for a column ............\n";
// query for one column
$stmt = $conn->query( $query, PDO::FETCH_COLUMN, 1 );
while ( $row = $stmt->fetch() ){
echo "$row\n";
}
echo "\n........ query with a new class ............\n";
$query = 'select * from HumanResources.Department order by GroupName';
// query with a class
class cc {
function __construct( $arg ) {
echo "$arg";
}
function __toString() {
return $this->DepartmentID . "; " . $this->Name . "; " . $this->GroupName;
}
}
$stmt = $conn->query( $query, PDO::FETCH_CLASS, 'cc', array( "arg1 " ));
while ( $row = $stmt->fetch() ){
echo "$row\n";
}
echo "\n........ query into an existing class ............\n";
$c_obj = new cc( '' );
$stmt = $conn->query( $query, PDO::FETCH_INTO, $c_obj );
while ( $stmt->fetch() ){
echo "$c_obj\n";
}
$stmt = null;
?>
contoh Sql_variant
Sampel kode ini menunjukkan cara membuat tabel jenis sql_variant dan mengambil data yang disisipkan.
<?php
$server = 'serverName';
$dbName = 'databaseName';
$uid = 'yourUserName';
$pwd = 'yourPassword';
$conn = new PDO("sqlsrv:server=$server; database = $dbName", $uid, $pwd);
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
try {
$tableName = 'testTable';
$query = "CREATE TABLE $tableName ([c1_int] sql_variant, [c2_varchar] sql_variant)";
$stmt = $conn->query($query);
unset($stmt);
$query = "INSERT INTO [$tableName] (c1_int, c2_varchar) VALUES (1, 'test_data')";
$stmt = $conn->query($query);
unset($stmt);
$query = "SELECT * FROM $tableName";
$stmt = $conn->query($query);
$result = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($result);
unset($stmt);
unset($conn);
} catch (Exception $e) {
echo $e->getMessage();
}
?>
Output yang diharapkan adalah:
Array
(
[c1_int] => 1
[c2_varchar] => test_data
)