fikretyn
Üye
PDOStatement sınıfı, PHP'de PDO (PHP Data Objects) ile çalışırken kullanılan önemli bir sınıftır. Bu sınıf, bir veritabanı sorgusunu temsil eder ve sorgunun hazırlanması, çalıştırılması ve sonuçlarının yönetilmesi gibi işlevler sunar. PDO, PHP’de farklı veritabanlarıyla çalışabilmek için evrensel bir arayüz sağlar ve PDOStatement sınıfı da bu arayüzün sorgu işlemlerini gerçekleştiren parçasıdır.
İşte PDOStatement sınıfının bazı önemli özellikleri ve yöntemleri:
<?php
try {
// PDO ile veritabanına bağlanma
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");
// Sorgu hazırlama
$stmt = $pdo->prepare("SELECT id, name, email FROM users WHERE id = :id");
// Parametre bağlama
$id = 1;
$stmt->bindParam(':id', $id, PDO:ARAM_INT);
// Sorguyu çalıştırma
$stmt->execute();
// Sonuçları çekme
$result = $stmt->fetch(PDO::FETCH_ASSOC);
// Sonucu ekrana yazdırma
print_r($result);
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
?>
Bu örnekte:
İşte PDOStatement sınıfının bazı önemli özellikleri ve yöntemleri:
1. Sorgu Hazırlama ve Çalıştırma
PDO ile bir sorguyu çalıştırmadan önce, genellikle sorguyu hazırlamanız (prepare) ve ardından çalıştırmanız (execute) gerekir.// PDO bağlantısı oluşturma
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
// Sorguyu hazırlama
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
// Parametreyi bağlama ve sorguyu çalıştırma
$stmt->execute(['id' => 1]);
// Sonuçları çekme
$result = $stmt->fetchAll();
2. Parametre Bağlama
PDOStatement sınıfı, SQL enjeksiyon saldırılarına karşı güvenlik sağlamak için parametre bağlama işlevi sunar.$stmt->bindParam(':id', $id);
3. Sonuçları Çekme
Sorgu çalıştırıldıktan sonra, sonuçları çeşitli yöntemlerle alabilirsiniz:- fetch(): Tek bir satırı çeker.
- fetchAll(): Tüm satırları çeker.
- fetchColumn(): Belirli bir sütunu çeker.
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
echo $row['username'];
}
4. Hata Yönetimi
Eğer bir hata olursa, PDO ya da PDOStatement sınıfı bu hataları yakalayabilir ve işlemler sırasında güvenliği sağlar.PDOStatement Sınıfının Yaygın Yöntemleri:
- execute(): Sorguyu çalıştırır.
- bindParam(): Bir değişkeni parametreye bağlar.
- bindValue(): Bir değeri parametreye bağlar.
- fetch(): Sonuç kümesinden tek bir satır getirir.
- fetchAll(): Tüm sonuçları getirir.
- rowCount(): Etkilenen satır sayısını döndürür.
Örnek Kullanım:
$pdo = new PDO('mysql:host=localhost;dbname=test', 'root', '');
$stmt = $pdo->prepare('SELECT * FROM users WHERE id = :id');
$id = 1;
$stmt->bindParam(':id', $id);
$stmt->execute();
$user = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($user);Bu şekilde PDOStatement, veritabanı işlemleri üzerinde tam kontrol sağlar ve güvenli sorgular yazmayı kolaylaştırır.
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
PDOStatement sınıfı, PHP'nin PDO (PHP Data Objects) kütüphanesiyle veri tabanıyla etkileşim kurmak için kullanılır. Bu sınıf, bir SQL sorgusunu hazırladıktan sonra sorguyu yürütmek ve sonuçları almak gibi işlevler sunar. Aşağıda sınıfın özelliklerini, yöntemlerini açıklayıp, örnek kullanımını göstereceğim.class PDOStatement implementsZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.{
/* Özellikler */
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.;
/* Yöntemler */
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.|Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sütun,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.&$değişken,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$veri_türü = PDO:ARAM_STR,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$uzunluk = 0,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$seçenekler =Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.|Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$bağımsız_değişken,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.&$değişken,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$veri_türü = PDO::ARAM_STR,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$uzunluk = 0,
Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$seçenekler =Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.|Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$bağımsız_değişken,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$değer,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$veri_türü = PDO::ARAM_STR):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$girdiler =Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_DEFAULT,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$göst_yönü = PDO::FETCH_ORI_NEXT,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$göst_başlangıcı = 0):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_DEFAULT):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_COLUMN,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sütun):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_CLASS,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sınıf,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$bağımsız_değişkenler):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_FUNC,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$geriçağırım):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sütun = 0):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sınıf = "stdClass",Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$bağımsız_değişkenler = []):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.|Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$isim):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sütun):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.|Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.():Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$öznitelik,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$değer):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_COLUMN,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sütunnum):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_CLASS,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$sınıfadı,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$bağımsız_değişkenler =Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
publicZiyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.(Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$kip = PDO::FETCH_INTO,Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.$nesne):Ziyaretçiler için gizlenmiş link,görmek için Giriş yap veya üye ol.
}
1. Özellikler
- public string $queryString: Hazırlanan SQL sorgusunun orijinal metnini tutar.
2. Yöntemler
- bindColumn: Sonuç setinden bir sütunu bir değişkene bağlar. Çekilecek veriyi doğrudan değişkene atar.
PHP:bindColumn(string|int $sütun, mixed &$değişken, int $veri_türü = PDO::PARAM_STR, int $uzunluk = 0, mixed $seçenekler = null): bool
- bindParam: SQL sorgusunda bir parametreye bir değişkeni bağlar. Bu yöntem genellikle giriş parametreleri için kullanılır. Değişken, sorgu çalıştırılmadan önce atanır.
PHP:bindParam(string|int $bağımsız_değişken, mixed &$değişken, int $veri_türü = PDO::PARAM_STR, int $uzunluk = 0, mixed $seçenekler = null): bool
- bindValue: SQL sorgusunda bir parametreye doğrudan bir değer bağlar. bindParam'dan farkı, değerin bağlanma anında sabitlenmesidir.
PHP:bindValue(string|int $bağımsız_değişken, mixed $değer, int $veri_türü = PDO::PARAM_STR): bool
Kod:
- closeCursor: Veritabanı sunucusuyla ilişkili kaynakları serbest bırakır
PHP:closeCursor(): bool
- columnCount: Sonuç setinde kaç sütun olduğunu döndürür.
PHP:columnCount(): int
- debugDumpParams: Hazırlanmış SQL sorgusunun parametrelerini ve diğer bilgileri döker.
PHP:debugDumpParams(): ?bool
- errorCode: Son hatanın SQLSTATE kodunu döndürür.
errorCode(): ?string
- errorInfo: Son hataya dair geniş bilgi döndürür.
errorInfo(): array
- execute: Hazırlanmış bir sorguyu çalıştırır.
execute(?array $girdiler = null): bool
- fetch: Sonuç setinden bir satır döndürür.
fetch(int $kip = PDO::FETCH_DEFAULT, int $göst_yönü = PDO::FETCH_ORI_NEXT, int $göst_başlangıcı = 0): mixed
- fetchAll: Sonuç setinden tüm satırları döndürür.
fetchAll(int $kip = PDO::FETCH_DEFAULT): array
- fetchColumn: Bir satırdan belirtilen sütunu döndürür.
fetchColumn(int $sütun = 0): mixed
- fetchObject: Sonuç setinden bir satırı bir nesne olarak döndürür.
fetchObject(?string $sınıf = "stdClass", array $bağımsız_değişkenler = []): object|false
- getAttribute: PDOStatement nesnesinin bir özniteliğini döndürür.
getAttribute(int $isim): mixed
- getColumnMeta: Belirtilen sütunun meta verilerini döndürür.
getColumnMeta(int $sütun): array|false
- getIterator: Sorgu sonucunu döndüren bir iterator sağlar.
getIterator(): Iterator
- nextRowset: Birden fazla sonuç seti içeren sorgularda bir sonraki seti döndürür.
nextRowset(): bool
- rowCount: Etkilenen satır sayısını döndürür.
rowCount(): int
- setAttribute: PDOStatement nesnesinin bir özniteliğini ayarlar.
setAttribute(int $öznitelik, mixed $değer): bool
- setFetchMode: Sonuç setinin nasıl döndürüleceğini belirler.
setFetchMode(int $kip): bool
Kullanım Örneği
Aşağıdaki örnek, PDO kullanarak bir veritabanına bağlanmayı, bir sorgu hazırlamayı ve sonuçları çekmeyi gösterir:<?php
try {
// PDO ile veritabanına bağlanma
$pdo = new PDO("mysql:host=localhost;dbname=testdb", "username", "password");
// Sorgu hazırlama
$stmt = $pdo->prepare("SELECT id, name, email FROM users WHERE id = :id");
// Parametre bağlama
$id = 1;
$stmt->bindParam(':id', $id, PDO:ARAM_INT);
// Sorguyu çalıştırma
$stmt->execute();
// Sonuçları çekme
$result = $stmt->fetch(PDO::FETCH_ASSOC);
// Sonucu ekrana yazdırma
print_r($result);
} catch (PDOException $e) {
echo "Hata: " . $e->getMessage();
}
?>
Bu örnekte:
- bindParam ile :id parametresi bağlanır.
- execute ile sorgu çalıştırılır.
- fetch ile sonuçlar döndürülür.
Son düzenleme: