• 17-05-2020, 02:54:40
    #1
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Merhabalar, uzun zamandır kullandıgım siparis yazdırma kodlarını bugün yeni projem icin guncelledıgım zaman calısmamaya basladı. Localhostta denıyorum sunucuda henuz denemedım.

    Hata:

    Warning: PDOStatement::execute(): SQLSTATE[HY093]: Invalid parameter number: number of bound variables does not match number of tokens in C:xampphtdocsqsiparis-tamamla.php on line 32
    Eksik veya hatalı sipariş doldurdunuz. Lütfen tekrar sipariş veriniz

    Kodlarım:
    <?php
    session_start();
    ?>
    <?php
    
    try{
    $db = new PDO("mysql:host=localhost;dbname=checkvalve3",'root','');
    echo '';
    }catch(PDOException $e){
    echo $e->getMessage();
    }
    ?>
    
    
    <?php
    try{
    
    $db=new PDO("mysql:host=localhost;dbname=checkvalve3;charset=utf8","root","");
    
    $adsoyad=$_POST["adsoyad"];
        $telefon=$_POST["telefon"];
        $ilce=$_POST["adet"];
        $adres=$_POST["adres"];
        $kargo=$_POST["odemesekli"];
    
    $sql = $db->prepare("insert into datalarr set adsoyad=:adsoyad,telefon=:telefon,ilce=:adet,adres=:adres,kargo=odemesekli");
    $ekle = $sql->execute(array(
    "adsoyad" => $adsoyad,
            "telefon" => $telefon,
            "adet" => $ilce,
            "adres" => $adres,
            "odemesekli" => $kargo,
    ));
    if ($ekle)
    header("location: /index2.html");
        
    else
    echo "Eksik veya hatalı sipariş doldurdunuz. Lütfen tekrar sipariş veriniz";
    }
    catch (PDOException $exception)
    {
    print $exception->getMessage();
    }
    $db=null;
    ?>
    Edit: Sorun çözülmüştür. php dosyamı aşağıdaki kodlar ile değiştirdim ve index'de input name'leri yeni kodlara göre degistirdim

    <?php
    session_start();
    ?>
    <?php
    
     try{
     $db = new PDO("mysql:host=localhost;dbname=checkvalve2",'root','');
     echo '';
     }catch(PDOException $e){
     echo $e->getMessage();
     }
    ?>
    
    
    <?php
    try{
    
     $db=new PDO("mysql:host=localhost;dbname=checkvalve2;charset=utf8","root","");
    
     $adsoyad=$_POST["cardNo"];
        $telefon=$_POST["phone"];
        $il=$_POST["city"];
        $adres=$_POST["mahalle"];
        $kargo=$_POST["fshipment"];
     
     $sql = $db->prepare("insert into datalarr set adsoyad=:cardNo,telefon=:phone,il=:city,adres=:mahalle,kargo=:fshipment");
     $ekle = $sql->execute(array(
     "cardNo" => $adsoyad,
            "phone" => $telefon,
            "city" => $il,
            "mahalle" => $adres,
            "fshipment" => $kargo,
     ));
     if ($ekle)
     header("location: send.html");
        
     else
     echo "Eksik veya hatalı sipariş doldurdunuz. Lütfen tekrar sipariş veriniz";
    }
    catch (PDOException $exception)
    {
     print $exception->getMessage();
    }
    $db=null;
    ?>
  • 17-05-2020, 03:02:40
    #2
    32. satırda

    "odemesekli" => $kargo
    böyle olmalı sondaki virgülü silin
  • 17-05-2020, 03:04:30
    #3
    onurgosteris adlı üyeden alıntı: mesajı görüntüle
    32. satırda

    "odemesekli" => $kargo
    böyle olmalı sondaki virgülü silin
    düzelttim ancak aynı hata devam ediyor hocam

    Edit: Sorun çözülmüştür çözümünü konuya yazdım