2013-01-08 2 views
0

어디에서 실수인지 이해하지 못합니다. giderler라는 데이터베이스가 있습니다. id (기본 키), kisi (varchar), tur (varchar), fiyat (varchar), mal (varchar), tarih (datetime), hesap (int)가 있습니다. 그리고 나는 테이블에 레코드를 추가하고 싶습니다. 나는 인터넷에서 1 시간을 찾고 있지만 아무것도 찾을 수 없다. 어떤 대답이든. 여기 SQLSTATE [42000] : 구문 오류 또는 액세스 위반

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

예외입니다 : 여기

는 코드입니다

Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

답변

1

당신은 말

$db->prepare("INSERT INTO giderler (kisi,tur,mal,fiyat,tarih,hesap) 
       VALUES (:kisi,:tur,:mal,:fiyat,:tarih,:hesap"); 
                  ^-------here 
+0

오에서 ) 누락, 덕분에 형제 : 이러한 종류의 건망증이 나를 미치게 만든다 :) –

관련 문제