Text dosyasından veri çekerken Türkçe karakter hatası almak

autolas

Femtopat
Katılım
20 Kasım 2023
Mesajlar
13
Daha fazla  
Cinsiyet
Erkek
Sadece bu harflerde (ı_ş_ğ ) (ı_i_ş_ğ) küçük büyük harflerde hata veriyor.
MySQL veri tabanı "utf8_turkish_ci" birçok dillerde test yaptım değişmedi yine seçili verileri metin text dosyasından çekiyor.
İçerik ekleme çekme PHP dosyasında sorun olduğunu düşünüyorum, bazı eklemeler yapmama rağmen sonuç aynı değişmiyor.

PHP:
<?php
$host = "localhost";
$dbname = "xxxxx";
$username = "xxxxx";
$password = "xxxxx";
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 = "veriler.txt";
try {
 $dosya = fopen($dosyaAdi, "r");
 while (!feof($dosya)) {
 $satir = fgets($dosya);

 if (!empty($satir)) {
 $stmt = $pdo->prepare("INSERT INTO makale (adi) VALUES (:deger)");
 $stmt->bindParam(':deger', $satir);
 $stmt->execute();
 }
 }
 fclose($dosya);
 echo "eklendi";
} catch (Exception $e) {
 echo "eklenmiyor" . $e->getMessage();
}
?>
 
Son düzenleyen: Moderatör:
Kod:
<?php
$host = "localhost";
$dbname = "xxxxx";
$username = "xxxxx";
$password = "xxxxx";
try {
    $pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $username, $password);
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die("Veritabanı hatası: " . $e->getMessage());
}

$dosyaAdi = "veriler.txt";
try {
    if (file_exists($dosyaAdi)) {
        $dosya = fopen($dosyaAdi, "r");
        $pdo->beginTransaction();

        while (!feof($dosya)) {
            $satir = fgets($dosya);

            if (!empty($satir)) {
                $stmt = $pdo->prepare("INSERT INTO makale (adi) VALUES (:deger)");
                $stmt->bindParam(':deger', $satir, PDO::PARAM_STR);
                $stmt->execute();
            }
        }

        fclose($dosya);
        $pdo->commit();
        echo "eklendi";
    } else {
        echo "Dosya bulunamıyor.";
    }
} catch (Exception $e) {
    $pdo->rollBack();
    echo "eklenmiyor: " . $e->getMessage();
}

$pdo = null;
?>

Böyle bi dener misin?

Kod:
<?php
$host = "localhost";
$dbname = "xxxxx";
$username = "xxxxx";
$password = "xxxxx";

// Karakter kodlamasını UTF-8mb4 olarak ayarla
ini_set('default_charset', 'UTF-8mb4');

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 = "veriler.txt";
try {
    $dosya = fopen($dosyaAdi, "r");
    while (!feof($dosya)) {
        $satir = fgets($dosya);

        if (!empty($satir)) {
            $stmt = $pdo->prepare("INSERT INTO makale (adi) VALUES :)deger)");
            $stmt->bindParam(':deger', $satir);
            $stmt->execute();
        }
    }
    fclose($dosya);
    echo "eklendi";
} catch (Exception $e) {
    echo "eklenmiyor" . $e->getMessage();
}
?>
[CODE]

Veya bunla.
 

Geri
Yukarı