2011-08-31 2 views
0

나는 무엇인가의 이유로 작동하지 않는 것처럼 보이는 업데이트 진술을 가지고 있습니다.MySQL 업데이트 문제

else if (isset($_POST['save'])) { 
    $query = "UPDATE assignments 
       SET expdate = '$expdate', 
        dispdate = '$dispdate', 
        duedate = '$duedate', 
        name = '$name', 
        cat1 = '$cat1', 
        cat2 = '$cat2', 
        cat3 = '$cat3', 
        schoolid = '$schoolid', 
        classid = '$classid', 
        public = '$public', 
        tags = '$tags', 
        description = '$description', 
        symbol = '$symbol' 
      WHERE id = '$assignmentid' 
       AND teacherid = '$uid'"; 
    echo $query; 
    mysql_query($query); 
} 

나는 많이 해봤지만 행을 업데이트받을 수없는 것. echo $query;이 쿼리를 출력하기 때문에 함수가 실행 중임을 알고 있습니다. 변수는 구문 분석 후

특정 문자열

은 다음과 같습니다

UPDATE assignments 
    SET expdate = '1325401200', 
     dispdate = '1293865200', 
     duedate = '1325401200', 
     name = 'Test 7', 
     cat1 = '138', 
     cat2 = '0', 
     cat3 = '0', 
     schoolid = '1', 
     classid = '33', 
     public = '1', 
     tags = 'New Vista High School,,80302,Patrick,Turmala,Test 7,,,138,No sub-categories,No sub-categories,test7,2012,testNew Vista High School,,80302,Patrick,Turmala,Test 7,,,138,0,0,teste,2012,testes', 
     description = 'Test 7', 
     symbol='teste' 
WHERE id = '21' 
    AND teacherid = '538' 

는 구문 오류인가? 무슨 일 이니?

누구에게 감사합니다.

+0

행의 ID가 21이고 teacherid가 538입니까? –

+1

mysql_query() 다음에 mysql_error()를 반향한다. 구문 오류 인 경우 일반 텍스트가됩니다. –

+0

또한 MySQL DATETIME 형식의 세 날짜 열이 있습니까? 아니면 PHP가 UNIX 타임 스탬프를 받아들이는 INT입니까? –

답변

0

예외를 볼 수

UPDATE assignments set `fieldname`= values where ... 

및 에코 mysql_error를 사용하려고.

0

당신은 그 인용 `를 사용해야합니다 공공, 같은 쿼리에서 MySQL의 예약어가 대부분 때문이다.

편집 : public은 mysql 예약어가 아니므로 mysql_error()을 시도하여 오류 메시지를 확인하십시오.

+0

'public'은 예약어가 아닙니다 : http://dev.mysql.com/doc/refman/5.0/en /reserved-words.html –

0

내가 받고있는 오류/예외를 알려주십시오.

난 그 칼럼의 길이에 문제가 있다고 생각했습니다. 열 태그의 길이가 너무 짧아서 지정된 값을 유지할 수 없습니다.