PHP Veritabanına Sorgu Gönderme

Herkese merhaba, PHP yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda veritabanına sorgu göndermeyi anlatacağım. Hadi başlayalım !
Table of Contents
PHP ile veritabanı işlemleri yapmak için farklı yöntemler mevcuttur. Bunlardan biri de PDO (PHP Data Objects) kullanmaktır. PDO, farklı veritabanı sistemleriyle çalışmayı kolaylaştıran bir PHP eklentisidir. Bu makalede, PHP ile PDO kullanarak veritabanına sorgu gönderme konusu ele alınacaktır.
PDO Nesnesi Oluşturma
PDO kullanarak bir veritabanı sorgusu göndermek için öncelikle bir bağlantı kurmanız gerekir. Bağlantı oluşturmak için PDO sınıfını kullanabilirsiniz. Bağlantı bilgilerini belirtmek için, PDO nesnesi oluştururken sunucu adı, kullanıcı adı, şifre ve veritabanı adı gibi bilgileri belirtmeniz gerekir. Aşağıda bir örnek gösterilmiştir:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
select Sorgusu Çalıştırma
Bu kod, PDO ile MySQL veritabanına bağlanır. Bağlantı kurulduktan sonra, sorguları gönderebilirsiniz. Sorgular, PDO nesnesinin prepare() yöntemi kullanılarak hazırlanır ve execute() yöntemi ile çalıştırılır. Örneğin, aşağıdaki kod, “mytable” adlı bir tablodaki tüm verileri seçer ve sonuçları ekrana yazdırır:
$stmt = $conn->prepare("SELECT * FROM mytable");
$stmt->execute();
$result = $stmt->fetchAll();
foreach($result as $row) {
echo "ID: " . $row["id"]. " - Name: " . $row["name"]. "<br>";
}
Bu kod, “mytable” adlı bir tablodaki tüm verileri seçer ve sonuçları $result değişkenine atar. Sonuçlar, foreach döngüsü kullanılarak ekrana yazdırılır.
PDO kullanarak sorguları gönderirken, güvenlik önlemleri almak önemlidir. Özellikle, kullanıcıların girdiği verileri doğrudan sorgularda kullanmak, SQL enjeksiyon saldırılarına yol açabilir. Bu nedenle, kullanıcı girdilerini doğrudan sorgularda kullanmak yerine, parametreli sorgular kullanmak daha güvenlidir.
Özetlemek gerekirse, PHP ile PDO kullanarak veritabanına sorgu göndermek oldukça kolaydır. Bunun için, öncelikle PDO sınıfını kullanarak bir bağlantı oluşturmanız gerekir. Daha sonra, prepare() ve execute() yöntemleri kullanılarak sorgular gönderilebilir. PDO ile sorgu gönderirken, güvenlik önlemlerini de dikkate almak önemlidir.
Parametreli Sorgular
Parametreli sorgular, kullanıcı girdilerini sorgularda kullanırken güvenliği arttırmak için kullanılabilir. Bu yöntemde, sorgulara değişkenler eklenir ve bu değişkenler sorgu çalıştırılmadan önce belirtilir. PDO, parametreli sorguları destekler. Aşağıdaki örnek, parametreli bir sorgu kullanarak “mytable” adlı bir tabloya yeni bir kayıt ekler:
$stmt = $conn->prepare("INSERT INTO mytable (name, age) VALUES (:name, :age)");
$stmt->bindParam(':name', $name);
$stmt->bindParam(':age', $age);
// insert a row
$name = "John Doe";
$age = 30;
$stmt->execute();
Bu örnek, “:name” ve “:age” gibi değişkenlerle sorguyu hazırlar. Daha sonra, bindParam() yöntemi kullanılarak bu değişkenler belirtilir ve sorgu çalıştırılır.
PostgreSQL Bağlantısı
PDO, birçok farklı veritabanı sistemiyle kullanılabilir. Bağlantı bilgileri değişebilir, ancak PDO nesnesi oluşturulurken belirtilen parametreler değişir. Örneğin, aşağıdaki örnek, PostgreSQL veritabanına bağlanır:
$servername = "localhost";
$username = "username";
$password = "password";
$dbname = "myDB";
try {
$conn = new PDO("pgsql:host=$servername;port=5432;dbname=$dbname;user=$username;password=$password");
// set the PDO error mode to exception
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
echo "Connected successfully";
} catch(PDOException $e) {
echo "Connection failed: " . $e->getMessage();
}
Bu örnek, PostgreSQL veritabanına bağlanmak için kullanılan bağlantı bilgilerini içerir.
PDO kullanarak veritabanı işlemleri yapmak, veri tabanına erişmek için güçlü bir araçtır. PDO, farklı veritabanı sistemleriyle çalışmayı kolaylaştırır ve güvenli sorgular göndermek için parametreli sorguları destekler. Bu nedenle, PHP ile veri tabanı işlemleri yaparken PDO kullanmak önemlidir.
İlk Satırı Okuma
PDO’nun diğer bir faydası da, sorgu sonucunu almak için kullanabileceğiniz birden fazla yöntem sağlamasıdır. Örneğin, fetch() yöntemi kullanarak sorgu sonucunu bir dizi olarak alabilirsiniz:
$stmt = $conn->query("SELECT * FROM mytable");
$result = $stmt->fetch(PDO::FETCH_ASSOC);
print_r($result);
Bu örnek, “mytable” adlı tablodan tüm satırları seçer ve sorgu sonucunu $result değişkenine dizi olarak atar. fetch() yöntemi, sorgu sonucunda birden fazla satır varsa yalnızca ilk satırı alır.
Tüm Satırları Okuma
fetchAll() yöntemi kullanarak tüm satırları alabilirsiniz:
$stmt = $conn->query("SELECT * FROM mytable");
$result = $stmt->fetchAll(PDO::FETCH_ASSOC);
print_r($result);
Bu örnek, “mytable” adlı tablodan tüm satırları seçer ve sorgu sonucunu $result değişkenine dizi olarak atar. fetchAll() yöntemi, sorgu sonucunda birden fazla satır varsa tüm satırları alır.
Satır Sayısını Alma
Diğer bir faydalı yöntem de rowCount() yöntemidir, bu yöntem sorgunun etkilediği satır sayısını döndürür. Örneğin:
$stmt = $conn->query("DELETE FROM mytable WHERE age > 25");
$numRows = $stmt->rowCount();
echo "Deleted $numRows rows";
Bu örnek, “mytable” adlı tablodaki yaşları 25’ten büyük olan tüm satırları siler ve kaç satırın etkilendiğini rowCount() yöntemi kullanarak belirler.
Sonuç
PDO, PHP ile veritabanı işlemleri yaparken kullanabileceğiniz güçlü bir araçtır. PDO, farklı veritabanı sistemleriyle çalışmayı kolaylaştırır ve güvenli sorgular göndermek için parametreli sorguları destekler. Ayrıca, farklı yöntemler kullanarak sorgu sonuçlarını alabilir ve sorgunun etkilediği satır sayısını belirleyebilirsiniz.
Evet PHP ile veritabanına sorgu gönderme ve çalıştırma bu şekilde yapılmakta. Tüm PHP yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.