Php (PDO) Kullanarak Mysql veritabanı kullanarak bağlantı ve bazı veri işlemleri!

Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
re work
Süper Üye
Katılım
31 Ocak 2016
Mesajlar
952
Çözümler
8
Tepki puanı
458
Ödüller
9
10 HİZMET YILI
Öncelikle herhangi bir php framework kullanmıyorsanız ve düz php yazıyorsanız kesinlikle pdo harici kod yazmayın güvenlik açısından. Bende bugün bazı veri ekleme, güncelleme, sorgulama, silme gibi kodları sizlerle paylaşacağım. Takıldığınız yerler olursa konuya yazmanız yeterli müsait oldukca çözüm sunmaya çalışırım cevaplarım. Önce kodları sonra açıklamalarını vereceğim.
Öncelikle Mysql veritabanı kısmını halledelim;
Not: Öncelikle yukarıda bahsettiğim kodu çalıştırmadan önce veritabanınızı oluşturmanız gerekmektedir. Aşağıdaki kodu kullanarak veritabanınızı oluşturabilirsiniz:


SQL:
CREATE DATABASE memoryhackers;

"veritabani_adi" yerine kullanmak istediğiniz veritabanının adını yazmalısınız. Ben örnek veritabanı ismi olarak memoryhackers kullandım ve aşağıda kullanacağım kodlardada veritabanı ismini memoryhackers olarak görüntüleyeceksiniz.

Bu şekilde, kullanıcı tablosunu ve gerekli veritabanını oluşturabilirsiniz. İhtiyaçlarınıza göre tablolara daha fazla sütun ekleyebilir veya mevcut sütunları değiştirebilirsiniz gençler.


Şimdi Aşağıda veritabanı tablolarınızı oluşturmak için kullanabileceğiniz SQL kodlarını bulabilirsiniz. Bu kodları çalıştırarak tablolarınızı oluşturabilirsiniz.

Kullanıcı tablosu:

SQL:
CREATE TABLE kullanici (
    id INT(11) AUTO_INCREMENT PRIMARY KEY,
    ad VARCHAR(50),
    soyad VARCHAR(50),
    email VARCHAR(50)
);



Şimdi gelelim PDO ile konumun asıl amacına;

Veritabanına bağlanma:

PHP:
<?php
$servername = "localhost";
$username = "root";
$password = "sifreniz";
$dbname = "memoryhackers";

try {
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Veritabanına başarıyla bağlandı!";
} catch(PDOException $e) {
    echo "Bağlantı hatası: " . $e->getMessage();
}
?>

Veritabanına bağlanma: Bu kod parçası, MySQL veritabanına PHP PDO kullanarak bağlanmayı sağlar. Bağlantı bilgileri girilir ve bağlantı başarılıysa "Veritabanına başarıyla bağlandı!" mesajı görüntülenir.



Veri ekleme:

PHP:
<?php
$ad = "OrnekAd";
$soyad = "OrnekSoyad";
$email = "[email protected]";

try {
    $stmt = $conn->prepare("INSERT INTO kullanici (ad, soyad, email) VALUES (?, ?, ?)");
    $stmt->execute([$ad, $soyad, $email]);

    echo "Veri başarıyla eklendi!";
} catch(PDOException $e) {
    echo "Veri ekleme hatası: " . $e->getMessage();
}
?>

Veri ekleme: Bu kod parçası, veritabanına yeni bir kayıt eklemek için kullanılır. Belirli bir tabloya (örneğin, "kullanici" tablosuna) ad, soyad ve e-posta gibi veriler ekler.





Veri sorgulama:

PHP:
<?php
try {
    $stmt = $conn->query("SELECT * FROM kullanici");
    $kullanicilar = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($kullanicilar as $kullanici) {
        echo "Ad: " . $kullanici['ad'] . ", Soyad: " . $kullanici['soyad'] . ", Email: " . $kullanici['email'] . "<br>";
    }
} catch(PDOException $e) {
    echo "Veri sorgulama hatası: " . $e->getMessage();
}
?>

Veri sorgulama: Bu kod parçası, veritabanından veri sorgulamak ve elde edilen sonuçları görüntülemek için kullanılır. Örneğin, "kullanici" tablosundaki tüm kullanıcıları seçer ve ad, soyad ve e-posta bilgilerini gösterir.




Veri filtreleme:

PHP:
<?php
$soyad = "Doe";

try {
    $stmt = $conn->prepare("SELECT * FROM kullanici WHERE soyad = ?");
    $stmt->execute([$soyad]);

    $kullanicilar = $stmt->fetchAll(PDO::FETCH_ASSOC);

    foreach ($kullanicilar as $kullanici) {
        echo "Ad: " . $kullanici['ad'] . ", Soyad: " . $kullanici['soyad'] . ", Email: " . $kullanici['email'] . "<br>";
    }
} catch(PDOException $e) {
    echo "Veri filtreleme hatası: " . $e->getMessage();
}
?>

Veri filtreleme: Bu kod parçası, veritabanındaki verileri belirli bir filtreye göre sorgular. Örneğin, "kullanici" tablosunda soyadı belirli bir değere (örneğin, "Doe") eşit olan kullanıcıları seçer ve ad, soyad ve e-posta bilgilerini gösterir.



Veri güncelleme:

PHP:
<?php
$kullanici_id = 1;
$yeni_ad = "Yasin";

try {
    $stmt = $conn->prepare("UPDATE kullanici SET ad = ? WHERE id = ?");
    $stmt->execute([$yeni_ad, $kullanici_id]);

    echo "Veri başarıyla güncellendi!";
} catch(PDOException $e) {
    echo "Veri güncelleme hatası: " . $e->getMessage();
}
?>

Veri güncelleme: Bu kod parçası, veritabanındaki mevcut bir kaydın verilerini güncellemek için kullanılır. Belirli bir tabloda (örneğin, "kullanici" tablosunda) belirli bir kullanıcının adını değiştirir.



Veri silme:

PHP:
<?php
$kullanici_id = 1;

try {
    $stmt = $conn->prepare("DELETE FROM kullanici WHERE id = ?");
    $stmt->execute([$kullanici_id]);

    echo "Veri başarıyla silindi!";
} catch(PDOException $e) {
    echo "Veri silme hatası: " . $e->getMessage();
}
?>

Veri silme: Bu kod parçası, veritabanından belirli bir kaydı silmek için kullanılır. Belirli bir tabloda (örneğin, "kullanici" tablosunda) belirli bir kullanıcıyı siler.



Bu açıklamalar, her kod parçasının ne işe yaradığını ve hangi amaçla kullanıldığını anlamanıza yardımcı olacaktır gençler. İhtiyaçlarınıza göre kodları özelleştirebilir ve geliştirebilirsiniz.

Takıldığınız yerler veya sormak istediklerinizi konu aşağısında sorabilirsiniz.
 
re work
Süper Üye
Katılım
31 Ocak 2016
Mesajlar
952
Çözümler
8
Tepki puanı
458
Ödüller
9
10 HİZMET YILI
"Veri Ekle" işlemini tek sayfada yapmak isterseniz aşağıdaki gibi yapıyorsunuz gençler ayrıca HTML formu ise kullanıcıdan ad, soyad ve email bilgilerini alır ve bu bilgileri kullanarak veri eklemesi yapılmasını sağlar. Aynı mantıkla güncelle, sil veya filtreleme işlemlerinide yapabilirsiniz. Önce kodu vereyim sonra resim halinde ekleme formunu sonra ise veritabanına eklenmiş halini. Aşağıdaki kodda veritabanı şifresini boş bıraktım çünkü localhostta çalıştıgım için şifre bulunmamakta siz sunucunuz üzerinde yapacaksanız veritabanı şifrenizi girin. Ayrıca kodda "post" edilen kısımı kendinize göre özelleştirebilirsiniz varsayılan olarak index.php kayıtlı.

PHP:
<?php
// Bağlantı bilgileri
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "memoryhackers";

try {
    // Veritabanı bağlantısı
    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    echo "Veritabanına başarıyla bağlandı!";
} catch(PDOException $e) {
    echo "Veritabanı bağlantı hatası: " . $e->getMessage();
}

// Veri ekleme
if ($_SERVER["REQUEST_METHOD"] == "POST") {
    $ad = $_POST['ad'];
    $soyad = $_POST['soyad'];
    $email = $_POST['email'];

    $stmt = $conn->prepare("INSERT INTO kullanici (ad, soyad, email) VALUES (:ad, :soyad, :email)");
    $stmt->bindParam(':ad', $ad);
    $stmt->bindParam(':soyad', $soyad);
    $stmt->bindParam(':email', $email);

    try {
        $stmt->execute();
        echo "Veri başarıyla eklendi!";
    } catch(PDOException $e) {
        echo "Veri ekleme hatası: " . $e->getMessage();
    }
}
?>

<!DOCTYPE html>
<html>
<head>
    <title>Veri Ekleme</title>
</head>
<body>
    <form method="POST" action="index.php">
        <label for="ad">Ad:</label>
        <input type="text" name="ad" id="ad" required>
        <br>
        <label for="soyad">Soyad:</label>
        <input type="text" name="soyad" id="soyad" required>
        <br>
        <label for="email">Email:</label>
        <input type="email" name="email" id="email" required>
        <br>
        <input type="submit" value="Ekle">
    </form>
</body>
</html>

chrome_5GOuIxgEl3.png


chrome_nOhU49xTgs.png


qVyFDjKoHk.png
 
Onaylı Üye
Katılım
14 Tem 2017
Mesajlar
61
Tepki puanı
4
Ödüller
7
Yaş
25
Sosyal
8 HİZMET YILI
gercekten acıklayıcı yazmıssın detaylı sekilde bazı eksiklerime buradan baktım sag olasın
 
Üye
Katılım
6 Şub 2020
Mesajlar
42
Tepki puanı
0
Ödüller
6
Yaş
27
6 HİZMET YILI
gercekten acıklayıcı yazmıssın detaylı sekilde bazı eksiklerime buradan baktım sag olasın
 
Onaylı Üye
Katılım
28 Kas 2023
Mesajlar
51
Tepki puanı
0
Yaş
25
2 HİZMET YILI
PDO'nun daha sağlıklı olduğunu duymuştum. Makale de çok işime yaradı başarılı
 
Durum
Üzgünüz bu konu cevaplar için kapatılmıştır...
Üst