v2.5.2
Giriş yap

Veri tabanına veri eklerken yaşadığım gizemli ? sorunu.

parzemisis
539 defa görüntülendi

Merhaba benim PDO ile mysql e veri yüklemek için kullandığım kodlar.

$link = mysqli_connect("localhost", "root", "", "test10");
    $link->query("SET CHARACTER SET utf8");
    $sql = "INSERT INTO yemekler (img_url, product_name, detail, price) VALUES ('" . $image["image" . $i] . "', '" . $ad["ad" . $i] . "', '" . $acıklama["acıklama" . $i] . "', '" . $fiyat["fiyat" . $i] . "')";
    if (mysqli_query($link, $sql)) {
        echo "menü oluşturuldu.<br>";
    }
    mysqli_close($link);

Bunlara ek olarak veri tabanın karakter seti utf-8_tukish_ci ben.

qwertyuıopğü

Harflerinden oluşan bir veri yüklediğim zaman görmeyi beklediğim sonuç.

qwertyuıopğü

Ama benim aldığım sonuç ise.

qwertyu?op?ü

Bana herşey tamam gibi göründüğü için sorunun ne olduğunu anlayamıyorum.

Cevap yaz
Cevaplar (3)
tayfunerbilen
1231 gün önce

İlk olarak karakter tanımı için utf8mb4_general_ci olarak ayarla. Böylece türkçe karakter problemi vs. çekmezsin.
İkinci olarak, mysqli ile başlayıp pdo ile devam edip, mysqli ile sonlandırmışsın :D Kafan biraz karışmış orada, aşağıdaki kodu deneyebilirsin.

try {
    $db = new PDO('mysql:host=localhost;dbname=test10;charset=utf8mb4', 'root', '');
} catch(PDOException $e){
    die($e->getMessage());
}

$query = $db->prepare('INSERT INTO yemekler SET img_url = :url, product_name = :name, detail = :detail, price = :price');
$query->execute([
    'url' => $image["image" . $i],
    'name' => $ad["ad" . $i],
    'detail' => $acıklama["acıklama" . $i],
    'price' => $fiyat["fiyat" . $i]
]);
if ($query->rowCount()){
     echo "menü oluşturuldu.<br>";
}
tayfunerbilen
1231 gün önce

acemi olmak utanılacak bir şey değil ya :) sadece biraz daha dikkat edersen senin için daha iyi olur, yoksa biz her zaman sorularını cevaplarız :)

parzemisis
1231 gün önce

İkinci olarak, mysqli ile başlayıp pdo ile devam edip, mysqli ile sonlandırmışsın :D

Keşke bukadar acemi olduğumu belli etmeseydim :)