PDO::query
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 untuk PHP versi 2.0 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 memperlihatkan 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
)
Lihat juga
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk