Nasıl Yapılır?

PHP’de MySQL Bağlantı Örnekleri

PHP, web tabanlı uygulamalar geliştirmek için yaygın olarak kullanılan bir sunucu tarafı betik dilidir. Veritabanı yönetimi için MySQL ile sıkça beraber kullanılır. Bu makalede, PHP ile MySQL veritabanına {nasıl} bağlanabileceğinizi çeşitli örneklerle açıklayacağız.

1. MySQLi Kullanarak Bağlantı

1.1. MySQLi ile Bağlantı Kurma

MySQLi (MySQL Improved), MySQL veritabanına bağlantı sağlamak için geliştirilmiş bir PHP eklentisidir. İşte temel bir bağlantı örneği:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "kontrol";

// Bağlantı oluştur
$conn = new mysqli($servername, $username, $password, $dbname);

// Bağlantıyı denetim et
if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}
echo "Bağlantı başarı göstermiş";
?>

1.2. Hazırlanmış İfadeler (Prepared Statements) Kullanma

Hazırlanmış ifadeler, SQL enjeksiyon saldırılarına karşı koruma sağlar. İşte bir örnek:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "kontrol";

// Bağlantı oluştur
$conn = new mysqli($servername, $username, $password, $dbname);

// Bağlantıyı denetim et
if ($conn->connect_error) {
    die("Bağlantı hatası: " . $conn->connect_error);
}

// Hazırlanmış ifade ve parametre bağlama
$stmt = $conn->prepare("SELECT id, name FROM users WHERE email = ?");
$stmt->bind_param("s", $email);

// Parametreyi ayarla ve sorguyu çalıştır
$email = "example@example.com";
$stmt->execute();

// Neticeleri al
$result = $stmt->get_result();
while ($row = $result->fetch_assoc()) {
    echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}

$stmt->close();
$conn->close();
?>

2. PDO (PHP Data Objects) Kullanarak Bağlantı

PDO, değişik veritabanlarına bağlantı sağlamak için kullanılan bir PHP eklentisidir. MySQL’e bağlantı oluşturmak için de kullanılabilir.

2.1. PDO ile Bağlantı Kurma

İlk olarak, PDO ile temel bir bağlantı örneği:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "kontrol";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    // Hata modu ayarla
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Bağlantı başarı göstermiş";
} catch(PDOException $e) {
    echo "Bağlantı hatası: " . $e->getMessage();
}
?>

2.2. Hazırlanmış İfadeler (Prepared Statements) Kullanma

PDO ile hazırlanan ifadeler şu şekilde kullanılabilir:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "kontrol";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    $stmt = $conn->prepare("SELECT id, name FROM users WHERE email = :email");
    $stmt->bindParam(':email', $email);

    $email = "example@example.com";
    $stmt->execute();

    while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
        echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
    }
} catch(PDOException $e) {
    echo "Bağlantı hatası: " . $e->getMessage();
}
?>

3. Eski MySQL Uzantısı ile Bağlantı (Kullanılması Önerilmez)

Eski mysql_* fonksiyonları artık PHP’de önerilmemekte ve PHP 7 ile beraber tamamen kaldırılmıştır. Güvenlik ve performans açısından mysqli yada PDO kullanılması tavsiye edilir. Gene de eski yöntemle {nasıl} bağlantı kurulduğunu göstermek için bir örnek verelim:

<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "kontrol";

// Bağlantı oluştur
$conn = mysql_connect($servername, $username, $password);

// Bağlantıyı denetim et
if (!$conn) {
    die("Bağlantı hatası: " . mysql_error());
}

// Veritabanını seç
mysql_select_db($dbname);

// Sorgu gönder
$result = mysql_query("SELECT id, name FROM users WHERE email = 'example@example.com'");

// Neticeleri al ve ekrana yazdır
while ($row = mysql_fetch_assoc($result)) {
    echo "id: " . $row["id"] . " - Name: " . $row["name"] . "<br>";
}

// Bağlantıyı kapat
mysql_close($conn);
?>

Yukarıdaki örneklerde, PHP’nin MySQL veritabanına {nasıl} bağlandığını ve değişik yöntemlerle {nasıl} sorgular yürüttüğünü gördük. Çağıl uygulamalar için mysqli yada PDO kullanmanız önerilir, bundan dolayı eski mysql_* fonksiyonları artık desteklenmemekte ve güvenli değildir.


Güncel yazı ve projeleri instagram'da duyuruyorum. Takip et, iletişimde kalalım ✔️@tahamumcu

Taha Mumcu

Ben Taha Mumcu, Bilişim sektöründe uzun süreden beri tecrübe edinerek bir yerlere gelmek için çalışmalarına devam eden ve sektörü yakından takip ederek hiç bir veriden geri kalmayan, girişimci ruhu ile tüm işlere elinden geldiğinde çalışma yapan bir girişimciyim. Henüz genç yaşta birçok tecrübeye ulaşan ve koyulan engelleri aşarak bir yerlere gelmek için çaba göstermekten çekinmiyorum.

İlgili Makaleler

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Başa dön tuşu

Reklam Engelleyici Algılandı

Lütfen reklam engelleyiciyi devre dışı bırakarak bizi desteklemeyi düşünün