2014-04-05 4 views
0

내가 잘못했는지 모르겠습니다. 작동하지 않습니다.PDO 삽입이 작동하지 않습니다.

저는 이토록 오랫동안당했습니다. 나는 그것을 이해할 수 없었다.

$sql="INSERT INTO hr_daily_claim(date, 
           site, 
           from, 
           to, 
           rental, 
           vehicle, 
           claim_id, 
           parking, 
           beverages, 
           others) 

          VALUES(:date, 
           :site, 
           :from, 
           :to, 
           :rental, 
           :vehicle, 
           :claim_id, 
           :parking, 
           :beverages, 
           :others)"; 
$stmt = $db->prepare($sql); 
$stmt->execute(array(
        ':date'  => $date, 
        ':site'  => $site, 
        ':from'  => $from, 
        ':to'  => $to, 
        ':rental' => $rental, 
        ':vehicle' => $vehicle, 
        ':claim_id' => $cliamId, 
        ':parking' => $parking, 
        ':beverages'=> $beverages, 
        ':others' => $others )); 

제발 도와주세요. 오류가 없습니다. 그러나 영향을받는 행 = 0; 전혀 삽입하지 않는다.

아래 표 구조

`id` int(11) NOT NULL AUTO_INCREMENT, 
    `claim_id` varchar(45) DEFAULT NULL, 
    `date` varchar(10) DEFAULT NULL, 
    `site` varchar(45) DEFAULT NULL, 
    `from` varchar(45) DEFAULT NULL, 
    `to` varchar(45) DEFAULT NULL, 
    `rental` int(11) DEFAULT NULL, 
    `vehicle` int(11) DEFAULT NULL, 
    `parking` int(11) DEFAULT NULL, 
    `beverages` int(11) DEFAULT NULL, 
    `others` int(11) DEFAULT NULL, 
    `timestamp` timestamp NULL DEFAULT CURRENT_TIMESTAMP, 

답변

6

from, MySQL의 toreserved words있다에게이다. 그것을 백틱으로 싸야합니다.

$sql="INSERT INTO hr_daily_claim(
       `date`, 
       `site`, 
       `from`,    //<-------- This 
       `to`,     //<-------- This 
       `rental`, 
       `vehicle`, 
       `claim_id`, 
       `parking`, 
       `beverages`, 
       `others` 
         ) 

(!) 참고 :이 아마 ':claim_id' => $claimId,로 읽어야 ':claim_id' => $cliamId,에서 $cliamId 변수에 오타가있을 수 있습니다, 그래서 그 변수가 귀하의 질문에 게시되지 않기 때문에, 그 확인 않습니다.

하나가 실패하면 전체 쿼리가 실패합니다. 또 다른 점은 $claimId$claimid이 같지 않다는 것입니다. 변수는 대소 문자를 구분합니다.

+1

일처럼 따옴표

'from' 'to' 

사이 to 단어를 못을 박았다. MySQL이 실제로보고 한 오류가 있음을 기억해야합니다. OP의 코드 만 제대로 검사하지 않습니다. – raina77ow

+0

'': claim_id '=> $ cliamId,'': claim_id'>> $ claimId로 읽어야하는 오타가 OP의 전체 코드를 보지 않고 말하기 쉽습니다. –

+0

흠. 프레드, 어쩌면 그의 변수 자체가'$ cliamId'인지 누가 알겠는가? : P –

1

쓰기 from 그냥 테이블 구조 코드

관련 문제