2012-10-18 3 views
1

이 테이블에 50 개의 필드가 있습니다. 각 필드에는 해당하는 두 개의 문자 상태 이름이 있습니다. 상태가 MySQL이는 OR 연산자 생각하기 때문에 OR$entry 때 그래서 문제가 있어요 MySQL 필드 이름이 충돌합니다.

//$entry is state name abbr. Oregon = OR<br/> 
//$cname and $zoneName aren't important. 

'UPDATE stateCarriers SET '.$entry.'= 1 WHERE cname="'.$cname.'" AND zone="'.$zoneName.'"' 

을 선택했을 때 나는이 상 mysql_query 있습니다.

필드 이름을 다른 것으로 변경하지 않고이 문제를 해결하려면 어떻게해야합니까?

+1

가 확실히 거의이다 인용 발행물. – Randy

+0

$ entry 주위에 \'characters를 concatting 해보십시오. –

+0

백 틱을 사용하여 이름을 이스케이프 할 수는 있지만 테이블 구조가 올바르지 않다고 생각합니다. 필드 이름에 "데이터"를 사용하는 것이 올바른 접근 방법이 아닌 것 같습니다. –

답변

3

역 문자를 사용해보십시오. `field` = 1로 필드를 구분합니다. 이것은 약간 다른 상황에 있지만 꽤 잘 작동하는 것 같습니다.

+0

예'''그게 무슨 뜻이야;) 스택 오버플로 코드로 변환;) – charly

+0

고마워. – flopex

0

'업데이트 stateCarriers은'SET '. $ entry.'` = 1 CNAME = "'. $의 CNAME."존은 WHERE를 = " '. $ 영역 이름이.'" '

관련 문제