Uzman Cevap beta aşamasından çıkmaya hazırlanıyor! Yenilikleri takipte kalın.
Çözüldü! Bu soru aradığı cevabı buldu :) Teşekkürler iyi niyetli insanlar!

İnsert into neden çalışmıyor ?

Öncelikle merhaba arkadaşlar diğer sayfalarda ki döngülerimde hiç bir problem yok yalnız ben konu eklemek için yeni bir sayfa açtım burdaki kodlarımda bir hata bulamadım. Bu kodlarla normalde konu eklemesi gerekiyor ama her defasında Konu eklenemedi diye hata çıktısı alıyorum. Kod olarak error message vermiyor.kodlar aşşağıdaki gibi

Formum bu şekilde

<form action="" method="post">
				<input class="yorumadi" type="text" name="kbaslik" placeholder="Konu Başlık" tabindex="1" />
				<input class="yorumeposta" type="text" name="kresim" placeholder="Konu Resim" tabindex="2" />
				<select name="kkategori" id="" class="kkategori" tabindex="3">
				<?php
				$v = $db->prepare("select * from kategoriler");
				$v->execute(array());
				$x = $v->fetchALL(PDO::FETCH_ASSOC);
				
				foreach($x as $m){
					
					echo '<option value="'.$m["kategori_id"].'">'.$m["kategori_adi"].'</option>';
					
				}
				?>
				</select>
				<textarea class="yorummesaj" type="textarea" name="kmesaj" placeholder="Konu Mesaj" tabindex="4" rows="10"></textarea>				
				<input class="yorumgonder" type="submit" value="Konu Ekle" tabindex="5" />
			</form>


Php kodlarım da bu şekilde

// session başlattım
if($_SESSION){
	// post işlemi yapıldığında buradan devam et
	if($_POST){
		
		$kbaslik = $_POST["kbaslik"];
		$kresim = $_POST["kresim"];
		$kkategori = $_POST["kkategori"];
		$kmesaj = $_POST["kmesaj"];
		
		if(!$kbaslik || !$kresim || !$kkategori || !$kmesaj){
			
			echo '<div class="hata">Gerekli alanları doldurunuz.</div>';
			
		}else{
			
			// Konu olup olmadığını kontrol ettirdim
			$v = $db->prepare("select * from konular where konu_baslik=?");
			$v->execute(array($kbaslik));
			$x = $v->fetch(PDO::FETCH_ASSOC);
			$z = $v->rowCount();
			
				if($z){
			
					echo '<div class="hata">Böyle bir konu zaten var.</div>';
			
				}else{
	// konu yoksa devam et				
$x = $db->prepare("insert into konular 
		
			konu_baslik=?,
			konu_resim=?,
			konu_kategori=?,
			konu_aciklama=?,
			konu_ekleyen=?
		
		");
		
		$konuekle= $x->execute(array($kbaslik,$kresim,$kkategori,$kmesaj,$_SESSION["adi"]));
					// doğru ise başarılı mesajı ver
						if($konuekle){
							
							echo '<div class="basarili">Kayıt Başarılı</div>';
					// yanlış ise hata mesajı ver		
						}else{
							
							echo '<div class="hata">Konu eklerken hata oluştu</div>';
							
						}
					
				}
			
		}


kodlarım bu şekilde ben bir hata göremiyorum :( konu ekle dediğim zaman Ekran çıktım Konu eklerken hata oluştu. şeklinde oluyor. bir türlü kayıt veritabanına eklenmiyor.
Bir yardıma hayır demem :) gözden kaçırdığım birşey mi var anlayamadım şimdiden teşekkürler.
Cevaplar (27)
0
insert into konular ibaresinden sonra SET olayını unutmuşsunuz sanırım
0
normalde set vardı hocam silip denedim set varkende olmuyor malesef.

$x = $db->prepare("insert into konular set
		
			konu_baslik=?,
			konu_resim=?,
			konu_kategori=?,
			konu_aciklama=?,
			konu_ekleyen=?
		
		");

normalde bu şekildeydi ama yine çalışmıyor.
0
üstad post işlemi yaptığınız anda ekrana çıkan mysql_error hatasını bi yazar mısınız o şekilde yardımcı olayım
0
mysql_error hatası yok üstadım. burdaki hatayı bende anlayamadım. Ama yeni konu eklemiyor.

 
if($konuekle){
							
							echo '<div class="basarili">Kayıt Başarılı</div>';
					// yanlış ise hata mesajı ver		
						}else{
							
							echo '<div class="hata">Konu eklerken hata oluştu</div>';
							
						}

bu döngüde "Konu eklenirken hata oluştu" yazdırıyor ekrana .Mysql hatası almıyorum.
0
echo '<div class="hata">Konu eklerken hata oluştu. '. mysql_error().'</div>';

şeklinde değiştirip bi deneyin size zahmet hata kodunu görelim. tabi öncesinde ayar.php gibi bir dosyada error_reporting(0) yaptıysanız bunu önceliklik olarak kapatın
0
verdiğiniz şekilde değiştirdim. hata kodu vermedi çıktı bu şekilde.

0
Merhaba, kodlarınızda küçük değiştirmeler yaptım, aşağıdakileri deneyebilir misiniz?

$x = $db->prepare("INSERT INTO konular SET

	konu_baslik=?,
	konu_resim=?,
	konu_kategori=?,
	konu_aciklama=?,
	konu_ekleyen=?

");
		
$konu_ekle = $x->execute(array($kbaslik,$kresim,$kkategori,$kmesaj,$_SESSION['adi']));
	
if($konu_ekle) {
		
	echo '<div class="basarili">Konu başarılı bir şekilde eklendi!</div>';
		
} else {
		
	echo '<div class="hata">Konu eklerken bir hata oluştu!</div>';
		
}
0
Malesef yine eklemedi hocam. Konu eklerken bir hata oluştu kodumu aldım ekranımda yine :(
0
Vermiş olduğum kodları kontrol ettim, sorunsuz çalışıyor.
0
Veritabanı print_r ile yazdırdığımda hiç bir sıkıntım yok veritabanından bilgileri çekebiliyorum. Ama insert ile ekleme yaptığımda eklemiyor. Bende bunu çözemiyorum işte :S
0
Uzaktan ancak bu kadar yardım edebiliyoruz, kusura bakmayın.
0
Session değerimide yazdırıyor hatta sorun ondamı diye konu_ekleyen kısmını ve session değerlerini sildim öyle konu eklemeyi denedim. yine aynı şekilde konuyu eklemedi.
0
@Can ASLAN dostum normal şartlar altında kodlarda bir sıkıntı görünmyor. php tablona bi göz atabilir misin. sütun isimleri ile formdan gelen name'ler örtüşüyor mu.
0
@Mert KABADAYI üstadım. kontrol ettiğim ilk şey oydu. hatta sıkıntı çıkmasın diye form name leri ile namelere atadığım isimleri dahi aynı yaptım. gerçekten çok değişik bir hata ile karşılaşıyorum çalışmaması için hiç bir sebep yok iken burada neden kayıt ekleme işlemini yapmıyor bir türlü anlayamadım :S her şeyi tek tek kontrol ettim. oda olmadı tekrar yazdım yine olmadı :S
0

$ekle_islem = $db->prepare('INSERT INTO konular (konu_baslik,konu_resim,konu_kategori,konu_aciklama,konu_ekleyen) VALUES (?,?,?,?,?)');
$konu_ekle = $ekle_islem->execute(array(
	$kbaslik,
	$kresim,
	$kkategori,
	$kmesaj,
	$_SESSION['adi']
));
0
@Melih Berat ŞANLI üstadım malesef yine aynı şekilde yeni konu eklenmedi. Benim anlamadığım hiç bir mysql error hatası almıyorum. Kodu inceliyorum eklemesi gerek ama eklemiyor :S... Bu arada deneme amaçlı bir değişkeni değiştirip kaydetmeyi denedim mysql hatası aldım yani mysql hatasını görüntülemiyor gibi bir durum sö konusu değil.
0
hocam birde normal olarak denermisinin pdo kullanmadan

<?php
if($_SESSION){
	// post işlemi yapıldığında buradan devam et
	if($_POST){
		
		$kbaslik = $_POST["kbaslik"];
		$kresim = $_POST["kresim"];
		$kkategori = $_POST["kkategori"];
		$kmesaj = $_POST["kmesaj"];
		
		if(!$kbaslik || !$kresim || !$kkategori || !$kmesaj){
			
			echo '<div class="hata">Gerekli alanları doldurunuz.</div>';
			
		}else{
			 $konuvarmi  = query("SELECT * FROM konular WHERE konu_baslik = '$kbaslik'");
                if(mysql_affected_rows()){
                    echo '<div class="alert alert-block alert-danger "><strong>'.$konu_baslik.'</strong> ibarelerini içeren bir kayıt sistemde mevcut, Lütfen Adını Değiştiriniz...</div>';
            }

				}else{
					
					 $insert = query("INSERT INTO konular SET
                    konu_baslik       = '$$kbaslik',
                    konu_resim        = '$kresim',
                    konu_kategori     = '$kkategori',
                    konu_aciklama     = '$kmesaj',
                    konu_ekleyen      = '$_SESSION["adi"]'");
                    
                if($insert){
                          echo '<div class="alert alert-block alert-success "><strong>Tebrikler!</strong> Konu Başarıyla Eklendi. Yönlendiriliyorsunuz...</div>';
                          go(URL."/admin/",2);
                        }else{
                           echo '<div class="alert alert-block alert-danger "><strong>Hata!</strong> Sorun Oluştu. '.  mysql_error().'</div>'; 
                        }
            }
        } }
?>  
0
PHP Sürümünü söylermisin bilmiyorsan bile
echo phpversion();
0
php sürümüm 5.6.19 ama bununla alakası olduğunu düşünmüyorum. Çünkü diğer sitelerimde çalışıyor insert.
@Mert KABADAYI üstadım senin verdiğin kodlarıda yaptım

konu_ekleyen = '$_SESSION["adi"]'"); bu satırda
Parse error: syntax error, unexpected '"'
böyle bir hata alıyorum.bir kaç hata daha vardıda düzenledim burası düzelmedi
0
konu_ekleyeni kaldırdım ve konu eklemeye çalıştığımda
Fatal error: Call to undefined function query()

bu şekilde hata alıyorum.
0
$x değişkenini 2 defa belirlemişsin


$x = $v->fetch(PDO::FETCH_ASSOC);

ve

$x = $db->prepare( ....


$x yerine başka bir değişken adı yazarak dene bazen böyle küçük şeyler bile sorun ola biliyor
0
@Ali Hüseynov $x i 2 defa belirlemedim. $v->fetch ile 1 konu aldım $v yi $x e atadım.

aşşağıdada $x = $db yani databaseye bağlan ve konu kontrolu yap diyerek devam ettim.

Ama yinede senin dediğinide yaptım farklı değişken atadım fakat yine aynı şekilde ekleme yapmadı :(
0
mysql_error() değilde else kısmında print_r($x->errorinfo()); şeklinde hataya bak.
0
Array ( [0] => HY000 [1] => 1364 [2] => Field 'konu_tarih' doesn't have a default value ) 1

böyle bir hata verdi konu_tarihi veritabanından kaldırınca başarılı bir şekilde konuyu ekliyor. Yalnız konu_tarih diye bir değişken tanımlamadım ben neden böyle bir hata veriyor acaba ?
0
Arkadaşlar hepinize çok teşekkür ediyorum. konu_tarihi otomatik ataması için current time değerini normalde seçmiştim konu_tarihi veritabanından silip tekrar yaptığımda düzeldi :( hepinizin emeğine sağlık çok teşekkürler.
0
Ah hocam ah bu hata daha önce başıma gelmişti :( şimdi hatırladım bu olayda mysql'da varsayılan kısımı NULL yap kaldırmak istemiyorsan :)
0
evet yaptım düzeldi hocam :) kafayı yemek üzereydim artık teşekkürler hepinize :)
Cevap Yazın..

[code=css,php,sql,asp..]..kod..[/code] , [url=http:...com] , [img=resim linki]
[color=renk kodu]..yazı..[/color]

yabancı dizi izle tv ünitesi