Pdostatement Sınıfı

Katılım
12 Mar 2024
Konular
49
Mesajlar
65
Beğeni
24
Online
19 saat 7 dakika
Konum
samsun
Ticaret
0 / 0 / 0
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:

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.




class PDOStatement implements {
/* Özellikler */
public ;
/* Yöntemler */
public (
| $sütun,
&$değişken,
$veri_türü = PDO::pARAM_STR,
$uzunluk = 0,
$seçenekler =
):
public (
| $bağımsız_değişken,
&$değişken,
$veri_türü = PDO:::pARAM_STR,
$uzunluk = 0,
$seçenekler =
):
public ( | $bağımsız_değişken, $değer, $veri_türü = PDO:::pARAM_STR):
public ():
public ():
public ():
public ():
public ():
public ( $girdiler = ):
public ( $kip = PDO::FETCH_DEFAULT, $göst_yönü = PDO::FETCH_ORI_NEXT, $göst_başlangıcı = 0):
public ( $kip = PDO::FETCH_DEFAULT):
public ( $kip = PDO::FETCH_COLUMN, $sütun):
public ( $kip = PDO::FETCH_CLASS, $sınıf, $bağımsız_değişkenler):
public ( $kip = PDO::FETCH_FUNC, $geriçağırım):
public ( $sütun = 0):
public ( $sınıf = "stdClass", $bağımsız_değişkenler = []): |
public ( $isim):
public ( $sütun): |
public ():
public ():
public ():
public ( $öznitelik, $değer):
public ( $kip):
public ( $kip = PDO::FETCH_COLUMN, $sütunnum):
public ( $kip = PDO::FETCH_CLASS, $sınıfadı, $bağımsız_değişkenler = ):
public ( $kip = PDO::FETCH_INTO, $nesne):
}
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.

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::pARAM_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.
PDOStatement sınıfı, veritabanı işlemlerini güvenli ve esnek bir şekilde yapmanıza olanak tanır. Bu sınıf sayesinde SQL enjeksiyonu gibi güvenlik açıkları minimize edilebilir.
 
Son düzenleme:

Users who are viewing this thread

Benzer konular Forum Tarih
forumagel Eğitim 0 10

Benzer konular

Ana Sayfa Kayıt Ol Giriş Yap
Üst