Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bir SQL sorgusu çalıştırır ve bir sonuç kümesini PDOStatement nesnesi olarak döndürür.
Syntax
PDOStatement PDO::query ($statement[, $fetch_style);
Parametreler
$statement: Çalıştırmak istediğiniz SQL ifadesi.
$fetch_style: Sorgu nasıl yapılacağına dair isteğe bağlı talimatlar. Daha fazla ayrıntı için Açıklamalar bölümüne bakın. $PDO::query içindeki fetch_style, PDO::fetch içindeki $fetch_style ile geçersiz kılılabilir.
Dönüş Değeri
Çağrı başarılı olursa, PDO::query bir PDOStatement nesnesi döndürür. Çağrı başarısız olursa, PDO::query PDO::ATTR_ERRMODE ayarına bağlı olarak bir PDOException nesnesi atar veya false döner.
İstisnalar
PDOException.
Remarks
PDO::query ile yürütülen bir sorgu, PDO::SQLSRV_ATTR_DIRECT_QUERY ayarına bağlı olarak hazırlanmış bir ifadeyi veya doğrudan çalıştırabilir. Daha fazla bilgi için, PDO_SQLSRV Sürücüsünün Doğrudan Özet Yürütmesi ve Hazırlanmış Bildirim Yürütme bölümlerine bakınız.
PDO::SQLSRV_ATTR_QUERY_TIMEOUT ayrıca PDO::exec'in davranışını da etkiler; daha fazla bilgi için PDO::setAttribute adresine bakınız.
Aşağıdaki seçenekleri $fetch_style için belirtebilirsiniz.
| Stil | Description |
|---|---|
| PDO::FETCH_COLUMN, num | Belirtilen sütundaki veri sorguları. Tablodaki ilk sütun 0. sütundur. |
| PDO::FETCH_CLASS, 'classname', array( arglist ) | Bir sınıf örneği oluşturur ve sınıftaki özelliklere sütun adları atar. Sınıf oluşturucu bir veya daha fazla parametre alıyorsa, arglist de geçebilirsiniz. |
| PDO::FETCH_CLASS, 'sınıf adı' | Mevcut bir sınıftaki özelliklere sütun adları atar. |
PDO::query'yi tekrar çağırmadan önce PDOStatement::closeCursor'u çağırarak PDOStatement nesnesine bağlı veritabanı kaynaklarını serbest bırakın.
Bir PDOStatement nesnesini null olarak ayarlayarak kapatabilirsiniz.
Sonuçlar kümesindeki tüm veriler alınmazsa, bir sonraki PDO::sorgu çağrısı başarısız olmaz.
PDO desteği, SQL Server için Microsoft Drivers for PHP sürümünün 2.0 sürümünde eklenmiştir.
Sorgu örneği
Bu örnek birkaç sorgu gösteriyor.
<?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;
?>
Sql_variant örnek
Bu kod örneği, sql_variant türden oluşan bir tablo oluşturulmasını ve eklenen veriyi nasıl getireceğini gösterir.
<?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();
}
?>
Beklenen çıktı şu olurdu:
Array
(
[c1_int] => 1
[c2_varchar] => test_data
)