PHP PDO Veritabanına Ekleme Problemi !
Merhaba arkadaşlar, şöyle bir problem ile karşılaştım. Localde çalıştığım zaman veritabanı ekleme işlemlerim sağlıklı çalışıyordu ancak sunucuya yükledikten sonra çalışmadı.
Aslında sorunun kaynağını buldum, tablomdaki sütunların tamamına veri girişi yapmıyorum şöyle;
Tablo yapım:
kategori_id Birincil int(11)
kategori_grup int(3)
dil varchar(2)
adi varchar(100)
kategoriyol varchar(250)
sira int(2)
$kategori = suz(strip_tags($_POST['kategoritr']));
$kategoriyol = $seo->seocevir($kategori_tr);
$sira = (int)$_POST['siratr'];
$db->exec("INSERT INTO tb_kategori(dil,adi,kategoriyol,sira) VALUES('tr','$kategori','$kategoriyol','$sira')");
Burada kategori_grup eklersem ve bir değer girersem ekleme yapıyor.
Acaba php.ini de bir ayar mı yapmak gerekiyor.
Soru hatalı mı? 👎
Eğer sorunun kurallara aykırı olduğunu düşünüyorsanız lütfen bize bildirin!
Cevaplar (2)
Cevap için teşekkürler, bu yöntem ilede kullanılmakla beraber sorunun nedenini buldum.
Sorun Mysql in güvenlik nedeni ile bir tanım belirtilmeyen hücrelerin boş bırakılamamasından kaynaklanıyormuş.
Bu problemin 2 çözümü var;
- ) Mysql de bir tablo oluştururken Varsayılan belirlenmesi gerekiyor, bunlar; 'NULL' ve 'Belirlenen Değer' olabiliyor.
- ) Bu yöntemi yaptığınızda varsıyan belirlemenize gerek kalmıyor. Bende Locade çalışmasının nedeni buydu. Mysql>Değişkenler içerisinde STRICT_TRANS_TABLES bölümünü sildiğimizde sorun ortadan kalkıyor.
boyle kullanılmaz bunlar dogru kullanımı bu sekılde ve kayıt olmamasının nedenı ıse execute kullanmadıgındandır
$dil="tr";
$kategori = suz(strip_tags($_POST['kategoritr']));
$kategoriyol = $seo->seocevir($kategori_tr);
$sira = (int)$_POST['siratr'];
$islem=$db->prepare("INSERT INTO tb_kategori(dil,adi,kategoriyol,sira) VALUES(?,?,?,?);
$islem->execute($dil,$kategori,$kategoriyol,$sira);