v2.5.2
Giriş yap

PHP PDO Veritabanına Ekleme Problemi !

tatarkursad
441 defa görüntülendi

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.

Cevap yaz
Cevaplar (2)
tatarkursad
1272 gün önce

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;

  1. ) Mysql de bir tablo oluştururken Varsayılan belirlenmesi gerekiyor, bunlar; 'NULL' ve 'Belirlenen Değer' olabiliyor.
  2. ) 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.
qplot
1282 gün önce

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);