• 27-12-2019, 11:45:52
    #1
    Aşağıdaki gibi dosyaları vt ye gönderdiğimde aldığım hata şu

    #TimeMemoryFunctionLocationCall Stack! ) Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters in C:wampwwwmkaballsiparis.php on line 3310.0010390112{main}( )...siparis.php:020.0120404616execute ( )...siparis.php:33Başarılı

    resim olayını kaldırınca sorunsuz devam ediyor işlem ama

    include 'baglanti.php';
    
    
    $uploads_dir = 'kullanici_resimleri/';
    @$tmp_name = $_FILES['medya_dosyasi'] ["tmp_name"];
    @$name = $_FILES['medya_dosyasi'] ["name"];
    
    $sayi1=rand(20000,30000);
    $sayi2=rand(20000,30000);
    $sayi3=rand(20000,30000);
    $sayilar=$sayi1.$sayi2.$sayi3;
    $resimyolu=$sayilar.$name;
    @move_uploaded_file($tmp_name, "$uploads_dir/$sayilar$name");
    
    
    
    
    $ad_soyad = $_POST['ad_soyad'];
    $adres = $_POST['adres'];
    $telefon = $_POST['telefon'];
    $ürün_rengi = $_POST['ürün_rengi'];
    $siparis_adet = $_POST['siparis_adet'];
    $model_yazi = $_POST['model_yazi'];
    $siparis_mesaj = $_POST['siparis_mesaj'];
    
    
    
    
    
    $ekle = $baglanti->prepare("INSERT INTO yenisiparisler SET ad_soyad = ?, adres = ?, telefon = ?, siparis_adet = ?, ürün_rengi = ?, model_yazi = ?, siparis_mesaj = ?,medya_dosyasi=:medya_dosyasi");
    $sorgu = $ekle->execute(array($ad_soyad,$adres,$telefon,$siparis_adet,$ürün_rengi,$model_yazi,$siparis_mesaj,'medya_dosyasi' => $resimyolu));
    
    
    
    if($ekle){
    
    echo "Başarılı";
    
    } else{
    
    
    echo "Başarısız";
    }
  • 27-12-2019, 12:06:32
    #2
    ? olarak tanımadığınız positional parametreler ile beraber : ile tanımladığınız named parametreler yerine sadece birisini kullanarak deneyiniz.
  • 27-12-2019, 12:10:30
    #3
    voLwy adlı üyeden alıntı: mesajı görüntüle
    ? olarak tanımadığınız positional parametreler ile beraber : ile tanımladığınız named parametreler yerine sadece birisini kullanarak deneyiniz.
    hocam tam olarak nasıl yapabilirim bu durumu
  • 27-12-2019, 12:16:43
    #4
    Öncelikle $ürün_rengi olan değişkenini $urun_rengi olarak güncellemelisin. Sonrasında aşağıdaki şekilde aliansı tüm değişkenlerde tanımlayıp dener misin?

    $ekle = $baglanti->prepare("INSERT INTO yenisiparisler SET
    ad_soyad=:adsoyad,
    adres= :adres,
    telefon= :telefon,
    siparis_adet= :siparis_adet,
    urun_rengi= :urun_rengi,
    model_yazi= :model_yazi,
    siparis_mesaj= :siparis_mesaj,
    medya_dosyasi= :medya_dosyasi
    ");
    $sorgu = $ekle->execute(array(
    'ad_soyad' => $ad_soyad,
    'adres' => $adres,
    'telefon' => $telefon,
    'siparis_adet' => $siparis_adet,
    'urun_rengi' => $urun_rengi,
    'model_yazi,' => $model_yazi,
    'siparis_mesaj' => $siparis_mesaj,
    'medya_dosyasi' => $resimyolu
    ));
    Birde if($ekle) değil if($sorgu) {} olmalı.
  • 27-12-2019, 12:36:12
    #5
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    Öncelikle $ürün_rengi olan değişkenini $urun_rengi olarak güncellemelisin. Sonrasında aşağıdaki şekilde aliansı tüm değişkenlerde tanımlayıp dener misin?

    $ekle = $baglanti->prepare("INSERT INTO yenisiparisler SET
    ad_soyad=:adsoyad,
    adres= :adres,
    telefon= :telefon,
    siparis_adet= :siparis_adet,
    urun_rengi= :urun_rengi,
    model_yazi= :model_yazi,
    siparis_mesaj= :siparis_mesaj,
    medya_dosyasi= :medya_dosyasi
    ");
    $sorgu = $ekle->execute(array(
    'ad_soyad' => $ad_soyad,
    'adres' => $adres,
    'telefon' => $telefon,
    'siparis_adet' => $siparis_adet,
    'urun_rengi' => $urun_rengi,
    'model_yazi,' => $model_yazi,
    'siparis_mesaj' => $siparis_mesaj,
    'medya_dosyasi' => $resimyolu
    ));
    Birde if($ekle) değil if($sorgu) {} olmalı.
    bir dünya hata alıyorum bu şekilde hepsi undefined hatası
  • 27-12-2019, 12:43:34
    #6
    $ad_soyad = $_POST['ad_soyad'];
    $adres = $_POST['adres'];
    $telefon = $_POST['telefon'];
    $urun_rengi = $_POST['ürün_rengi'];
    $siparis_adet = $_POST['siparis_adet'];
    $model_yazi = $_POST['model_yazi'];
    $siparis_mesaj = $_POST['siparis_mesaj'];
    POST ile gelenleri yukarıdaki gibi değişkenlere atıyorsun değil mi?
  • 27-12-2019, 12:44:40
    #7
    salimsevindik adlı üyeden alıntı: mesajı görüntüle
    $ad_soyad = $_POST['ad_soyad'];
    $adres = $_POST['adres'];
    $telefon = $_POST['telefon'];
    $urun_rengi = $_POST['ürün_rengi'];
    $siparis_adet = $_POST['siparis_adet'];
    $model_yazi = $_POST['model_yazi'];
    $siparis_mesaj = $_POST['siparis_mesaj'];
    POST ile gelenleri yukarıdaki gibi değişkenlere atıyorsun değil mi?
    evet hocam şimdi tekrar denedim aynı hatayı yine alıyorum
  • 27-12-2019, 14:10:45
    #8
    Hocam öncelikle kodlarınızın ilgili alanlarını try catch blokları içinde yazarsanız hata tespitiniz daha kolay olur.
    İkinci olarak değişken tanımlamalarında türkçe karakter kullanmamalısınız. Veritabanında tablonuzda da o şekilde kullandıysanız onlaır da güncellemenizi tavsiye ederim.

    Aldığınız hata veri tipiyle ilgili bir hata. Muhtemelen int tipinde değer kabul eden bir alana string veya başka tipte bir veri eklemeye çalışıyorsunuz. Gerçi ilk paylaştığınız pdo kodu da doğru kullanıma sahip değil.
    @salimsevindik; nickli arkadaşın yazdığı bilgiler doğru. Ne tür bir hata alıyorsunuz o kodları uygulayınca ?
  • 27-12-2019, 14:13:40
    #9
    Dixie7 adlı üyeden alıntı: mesajı görüntüle
    hocam tam olarak nasıl yapabilirim bu durumu

    $ekle = $baglanti->prepare("INSERT INTO yenisiparisler SET ad_soyad = ?, adres = ?, telefon = ?, siparis_adet = ?, ürün_rengi = ?, model_yazi = ?, siparis_mesaj = ?,medya_dosyasi = ?");
    $sorgu = $ekle->execute(array($ad_soyad,$adres,$telefon,$siparis_adet,$ürün_rengi,$model_yazi,$siparis_mesaj,$resimyolu));
    Bu şekilde deneyiniz. ? ve : ile beraber aynı anda kullanmayın.

    Değişkenlerde Türkçe karakter kullanmayınız bu arada. Türkçe karakter içeren değişkenleri ve veritabanındaki alanları değiştirin.