Veri tabanına veri eklerken yaşadığım gizemli ? sorunu.
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.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (3)
İ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>";
}
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 :)
İ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 :)