PHP ile TXT dosyasındaki veriler MySQL'e nasıl eklenir?

autolas

Femtopat
Katılım
20 Kasım 2023
Mesajlar
13
Daha fazla  
Cinsiyet
Erkek
Merhaba, PHP ile metin belgesinin içindeki veriler veritabanına nasıl eklenir?

Tablo adları: ID, baslik.

Metin belgesinin içindeki örnek veriler:

Bu bir örnektir.
Bu da bir örnektir.
Aynı şekilde örnektir.
Böy böyle devam ediyor.

Bu şekilde aşağıya doğru alt alta sıralanmış binlerce veriler var ve bu verileri ayrı ayrı ID değerleri farklı olmak şartıyla veritabanına eklemek istiyorum. Ayrıca tüm veriyi tek seferde mi ekliyor veritabanına? Teşekkürler.
 
Son düzenleyen: Moderatör:
PHP:
<?php

// Veritabanı bağlantısı
$host = "localhost";
$db_user = "kullanici_adi";
$db_pass = "sifre";
$db_name = "veritabani_adi";

$db = new mysqli($host, $db_user, $db_pass, $db_name);

// Bağlantı kontrolü
if ($db->connect_error) {
    die("Veritabanına bağlanırken hata oluştu: " . $db->connect_error);
}

// Metin belgesinin adı ve yolunu yazın
$dosyaAdi = "metin_belgesi.txt";

if (($dosya = fopen($dosyaAdi, "r")) !== FALSE) {
    while (($veri = fgets($dosya)) !== FALSE) {
        $baslik = trim($veri);
        $sql = "INSERT INTO tablo_adi (baslik) VALUES ('$baslik')";

        if ($db->query($sql) === TRUE) {
            echo "Veri başarıyla eklendi: $baslik<br>";
        } else {
            echo "Hata: " . $sql . "<br>" . $db->error;
        }
    }

    fclose($dosya);
} else {
    echo "Metin belgesi okunurken hata oluştu.";
}
$db->close();

?>
 
hocam ( ı, ş, ğ ) sadece bu kelimeler hata verdi veri tabanına eklendi.
hata veren kelimeler mysql den "utf8_turkish_ci" yaptım.
$charset = "utf8"; ekledim.

ı = ý
ş = þ
ğ = ð

şöyle bir kod buldum buda güzel çalışıyor tek sorunu karakter hatası veriyor.
hata veren kelimler : ı, ş, ğ sadece bunlar sorun çıkartıyor.
PHP:
<?php
$host = "localhost";
$dbname = "xxxx";
$username = "xxx";
$password = "xxx";
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Veritabanı hatasi" . $e->getMessage());
}
$dosyaAdi = "kelimeler.txt";
try {
    $dosya = fopen($dosyaAdi, "r");
    while (!feof($dosya)) {
        $satir = fgets($dosya);
 
        if (!empty($satir)) {
            $stmt = $pdo->prepare("INSERT INTO tabloadi (adi) VALUES (:deger)");
            $stmt->bindParam(':deger', $satir);
            $stmt->execute();
        }
    }
    fclose($dosya);
    echo "eklendi";
} catch (Exception $e) {
    echo "eklenmiyor" . $e->getMessage();
}
?>
 
Son düzenleme:

Geri
Yukarı