0

どこが間違っているのか本当にわかりません。私は giderler という名前のデータベースを持っています。また、id (主キー)、kisi (varchar)、tur (varchar)、fiyat (varchar)、mal (varchar)、tarih (datetime)、hesap (int) が含まれます。そして、いくつかのレコードをテーブルに追加したいだけです。インターネットで 1 時間探していますが、何も見つかりません。

コードは次のとおりです。

if(isset($_POST['AddExpense'])){

    /* Formdan gerekli veiler alınıyor */
    $kisi = $_POST['kisi'];
    $tur = $_POST['tur'];
    $fiyat = $_POST['fiyat'];
    $mal = $_POST['mal'];

    if(!is_numeric($fiyat))
    {
        /* Fiyat sadece integer değer alıyor. */
        echo '<div id="error">Lütfen Fiyatı Sadece Rakam Olarak Giriniz!</div>';
        die;
        }

    $tarih = date("d-m-Y 00:00:00");        /* Tarih formatı gg-aa-yy */
    echo $kisi. ' - ' .$tur. ' - ' .$mal. ' - ' .$fiyat. ' - '. $tarih;
    /* Veritabanına kayıt gerçekleştiriliyor */
    try{
    $add_expense = $db->prepare("INSERT INTO giderler (kisi,tur,mal,fiyat,tarih,hesap) VALUES (:kisi,:tur,:mal,:fiyat,:tarih,:hesap");
    $add_expense->execute(array(
        ':kisi' => $kisi,
        ':tur' => $tur,
        ':mal' => $mal,
        ':fiyat' => $fiyat,
        ':tarih' => $tarih,
        ':hesap' => 0 /* Yeni girilen kayıt. Ödeşmeler gerçekleşmedi. Bu değer ay sonunda 1 olacak */
        ));

    echo '<div id="successs">Sayın '.$kisi.', Kaydınız Başarıyla Eklendi.</div>';

    /*Exception fırlatılıyor*/
    }catch(PDOException $ex){
        echo 'Error: '.$ex->getMessage();
        }   
    }

例外は次のとおりです。

エラー: SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1064 SQL 構文にエラーがあります。1 行目の near '' を使用する正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

4

1 に答える 1

1

)あなたは最後に欠けています

$db->prepare("INSERT INTO giderler (kisi,tur,mal,fiyat,tarih,hesap) 
              VALUES (:kisi,:tur,:mal,:fiyat,:tarih,:hesap");
                                                          ^-------here
于 2013-01-08T10:42:48.027 に答える