Veritabanından verileri nasıl çekebilirim?

Veritabanından PHP ile veri çekmek istediğimde hangi fonksiyonları kullanabilirim? PDO veya mysqli arasındaki fark nedir?

PHP’de, veritabanından veri çekmek için PDO (PHP Data Objects) ve mysqli (MySQL Improved Extension) olmak üzere iki farklı yöntem kullanılabilir.

PDO, PHP ile veritabanı arasındaki iletişimi sağlayan bir arayüzü temsil eder. Farklı veritabanı türlerini destekler ve bu nedenle tüm popüler veritabanı sistemleri arasında taşınabilir bir çözüm sağlar. PDO kullanırken, veritabanı sorgularını SQL Injection saldırılarından korumak ve içeriği doğru biçimde taşımak için parametreli sorgular kullanabilirsiniz.

mysqli, MySQL veritabanı için özel bir veri erişim katmanıdır. MySQL sunucusu ile doğrudan iletişim kurar ve bu nedenle MySQL için optimize edilmiştir. mysqli’yı kullanırken, sorgularınızın hızını giderebilirsiniz. Ayrıca, sorgu sonuçlarını almak için daha hızlı yöntemler sunar.

PDO ve mysqli arasında kullanımda farklılıklar vardır, ancak genel olarak iki yöntem de veritabanından veri çekmek için etkili bir şekilde kullanılabilir. Hangi yöntemi kullanmanız gerektiği, seçtiğiniz veritabanı türüne bağlıdır.

Elbette, örnek kodlar aşağıdaki gibi olabilir:

Tekli Veri Çekme Örneği:

PDO ile:

<?php
// veritabanı bağlantısı
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "myusername", "mypassword");

// SQL sorgusu ve parametreleri
$sql = "SELECT username FROM users WHERE id = :id";
$id = 1;

// sorgunun hazırlanması
$stmt = $pdo->prepare($sql);

// parametrelerin atanması
$stmt->bindParam(':id', $id, PDO::PARAM_INT);

// sorgunun çalıştırılması
$stmt->execute();

// sonuçların alınması
$username = $stmt->fetchColumn();

echo "Kullanıcı adı: " . $username;
?>

mysqli ile:

<?php
// veritabanı bağlantısı
$conn = mysqli_connect("localhost", "myusername", "mypassword", "mydatabase");

// SQL sorgusu ve parametreleri
$sql = "SELECT username FROM users WHERE id = ?";
$id = 1;

// sorgunun hazırlanması
$stmt = mysqli_prepare($conn, $sql);

// parametrelerin atanması
mysqli_stmt_bind_param($stmt, "i", $id);

// sorgunun çalıştırılması
mysqli_stmt_execute($stmt);

// sonuçların alınması
mysqli_stmt_bind_result($stmt, $username);
mysqli_stmt_fetch($stmt);

echo "Kullanıcı adı: " . $username;
?>

Çoklu Veri Çekme Örneği:

PDO ile:

<?php
// veritabanı bağlantısı
$pdo = new PDO("mysql:host=localhost;dbname=mydatabase", "myusername", "mypassword");

// SQL sorgusu
$sql = "SELECT username, email FROM users";

// sorgunun hazırlanması
$stmt = $pdo->prepare($sql);

// sorgunun çalıştırılması
$stmt->execute();

// sonuçların alınması
$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

// sonuçların işlenmesi
foreach ($results as $row) {
    echo "Kullanıcı adı: " . $row['username'] . ", E-posta: " . $row['email'] . "<br>";
}
?>

mysqli ile:

<?php
// veritabanı bağlantısı
$conn = mysqli_connect("localhost", "myusername", "mypassword", "mydatabase");

// SQL sorgusu
$sql = "SELECT username, email FROM users";

// sorgunun hazırlanması
$stmt = mysqli_prepare($conn, $sql);

// sorgunun çalıştırılması
mysqli_stmt_execute($stmt);

// sonuçların alınması
mysqli_stmt_bind_result($stmt, $username, $email);

// sonuçların işlenmesi
while (mysqli_stmt_fetch($stmt)) {
    echo "Kullanıcı adı: " . $username . ", E-posta: " . $email . "<br>";
}
?>

Bu örnek kodlar, PDO ve mysqli kullanarak tekli ve çoklu veri çekimi yapmanıza yardımcı olacaktır.

1 Beğeni