BİLGİ BANKASI
Bilgi Bankası, Teknik Konular, Videolar
Search for:
  • Home/
  • PDO/
  • PDO İşlemleri – PDO Queries

PDO İşlemleri – PDO Queries

PDO, PHP’de veritabanına bağlanmak ve işlemleri gerçekleştirmek için bir sınıftır. PDO, veritabanı sistemleri arasında standart bir API sağlar, bu nedenle birden fazla veritabanı sistemini destekler.

PDO’yu kullanmak için ilk olarak PDO sınıfını dahil edin ve bağlantıyı oluşturun. Bağlantıyı oluştururken, veritabanı sistemini (örneğin, MySQL, PostgreSQL, SQLite), sunucu adresini, kullanıcı adını, parolanızı ve bağlantıyı kaydedeceğiniz bir değişkene atayın.

try {
    $dsn = "mysql:host=localhost;dbname=mydb";
    $username = "root";
    $password = "password";
    $options = [
        PDO::ATTR_ERRMODE            => PDO::ERRMODE_EXCEPTION,
        PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
        PDO::ATTR_EMULATE_PREPARES   => false,
    ];
    $pdo = new PDO($dsn, $username, $password, $options);
} catch (PDOException $e) {
    die("Error connecting to database: " . $e->getMessage());
}

Ardından, PDO’yu kullanarak sorguları ve işlemleri gerçekleştirebilirsiniz. PDO, prepared statements (işlevsel ifadeler) kullanarak veritabanında SQL injecion gibi güvenlik açıklarını önler.

$stmt = $pdo->prepare("SELECT name, email FROM users WHERE id = ?");
$stmt->execute([1]);
$user = $stmt->fetch();

$stmt = $pdo->prepare("UPDATE users SET name = ? WHERE id = ?");
$stmt->execute(["John Doe", 1]);

$stmt = $pdo->prepare("DELETE FROM users WHERE id = ?");
$stmt->execute([1]);

PDO, veritabanında gerçekleştirilen işlemleri gözlemleyebilir ve raporlamak için kullanılabilir.

$stmt = $pdo->query("SELECT * FROM users");
$affectedRows = $stmt->rowCount();
$lastInsertId = $pdo->lastInsertId();

PDO, veritabanındaki tabloları ve kolonları listeleyebilir ve sorguları oluşturabilirsiniz.

$results = $pdo->query("SHOW TABLES");
$tables = [];
while ($row = $results->fetch()) {
    $tables[] = $row[0];
}

$results = $pdo->query("SHOW COLUMNS FROM users");
$columns = [];
while ($row = $results->fetch()) {
    $columns[] = $row[0];
}

PDO, veritabanındaki sorguları ve işlemleri gerçekleştirmek için kullanılabilir. PDO, veritabanı sistemleri arasında standart bir API sağlar, bu nedenle birden fazla veritabanı sistemini destekler.

  1. Parametre bağlama:

    PDO ile parametrelere değer atamak için farklı yöntemler kullanabilirsiniz. Yukarıdaki örneklerde gördüğümüz gibi diziler veya isimlendirilmiş parametreler kullanabilirsiniz. İsimlendirilmiş parametrelerle şunu yapabilirsiniz:
$stmt = $pdo->prepare("SELECT name, email FROM users WHERE id = :id");
$stmt->bindParam(':id', $id, PDO::PARAM_INT);
$id = 1;
$stmt->execute();
$user = $stmt->fetch();
  1. Son hata bilgilerini alma:
    Hataları yakalamak ve hata ayrıntılarını almak için try-catch blokları kullanabilirsiniz. Hata ayrıntılarını almak için getMessage() işlevini kullanabilirsiniz. Aşağıdaki örnekte, bağlantı hatası durumunda bir hata mesajı yazdırılıyor:
try {
    $pdo = new PDO($dsn, $username, $password);
} catch (PDOException $e) {
    die("Connection failed: " . $e->getMessage());
}
  1. Sorgu sonuçlarını döngü içinde dolaşmak: PDO ile sorgu sonuçlarını elde etmek için döngüler kullanabilirsiniz. birden fazla satırı döndüren sorgular için fetch() işlevi kullanılarak döngü içinde sonuçlar alınabilir:
$stmt = $pdo->query("SELECT name, email FROM users");
while ($row = $stmt->fetch()) {
    echo $row['name'] . " - " . $row['email'] . "<br>";
}
  1. Son eklenen veya güncellenen satırın ID’sini alma: PDO ile son eklenen veya güncellenen satırın ID’sini almak için lastInsertId() yöntemini kullanabilirsiniz. Örnek olarak:
$stmt = $pdo->prepare("INSERT INTO users (name, email) VALUES (?, ?)");
$stmt->execute(["John Doe", "johndoe@example.com"]);
$lastId = $pdo->lastInsertId();

Bu noktada PHP PDO işlemlerinin çeşitli yönlerini ayrıntılı bir şekilde ele aldık. PDO, geniş bir işlevselliğe sahip olup farklı veritabanı sistemleriyle kullanılabilir. Bu sayede veritabanı işlemlerini güvenli ve verimli bir şekilde gerçekleştirebilirsiniz.

  1. Veri çekmede farklı yöntemler kullanma: PDO ile veri çekerken farklı yöntemlerden birini seçebilirsiniz. Aşağıdaki örnekte FETCH_ASSOC seçeneği kullanarak sadece ilişkisel bir dizi döndürülmesini sağlıyoruz:
$stmt = $pdo->prepare("SELECT name, email FROM users");
$stmt->execute();
$users = $stmt->fetchAll(PDO::FETCH_ASSOC);
  1. PDO Hatalarını Yönetme: PDO’da hataları yönetmek için errorInfo() yöntemini kullanabilirsiniz. Bu yöntem, sorgudaki hata hakkında ayrıntılı bilgiler içeren bir diziyi döndürür. Örneğin:
$stmt = $pdo->prepare("SELECT name FROM non_existing_table");
$stmt->execute();

$errorInfo = $stmt->errorInfo();
if ($errorInfo[0] !== '00000') {
    echo "Query failed: " . $errorInfo[2];
}
  1. Veri tipini belirleme: PDO, kolonların veya parametrelerin veri tiplerini belirlemenize olanak sağlar. Bu, veri uyumluluğunu ve güvenliği artırır. Örneğin:
$stmt = $pdo->prepare("INSERT INTO users (name, age) VALUES (?, ?)");
$stmt->bindValue(1, "John Doe", PDO::PARAM_STR);
$stmt->bindValue(2, 25, PDO::PARAM_INT);
$stmt->execute();
  1. Bağlantı parametrelerini değiştirme: PDO bağlantı parametrelerini değiştirmek için setAttribute() yöntemini kullanabilirsiniz. Örneğin, hata raporlama seviyesini ve karakter setini değiştirmek için:
$pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
$pdo->setAttribute(PDO::ATTR_EMULATE_PREPARES, false);
$pdo->exec("SET NAMES 'utf8'");

Bu noktada PDO kullanarak veritabanı işlemlerini gerçekleştirmek için çeşitli yöntemleri ele aldık. PDO, birçok işlevselliği desteklemekte ve güvenli, esnek bir şekilde veritabanı işlemleri yapmanızı sağlamaktadır. Bu yöntemleri kullanarak veritabanı işlemlerini daha kolay, daha güvenli ve daha etkili bir şekilde gerçekleştirebilirsiniz.

Leave A Comment

All fields marked with an asterisk (*) are required