2009-09-09 4 views
1

이 문자는 저를 혼란스럽게합니다. 나는 MySQL의 쿼리는 PDO하지만 실행되고있다 :MySQL 쿼리는 빈 문자열 대신 0으로 필드를 설정합니다.

$stmt = $db->prepare("UPDATE member SET acode='' AND status='active' WHERE username=:u"); 
$stmt->bindValue(':u', $member->username, PDO::PARAM_STR); 
$stmt->execute(); 

acode 필드가 어떤 이유로 0으로 설정됩니다.

으로 작성되었습니다.
`acode` varchar(8) NOT NULL 

준비된 명령문을 사용할 때 특별한 필요가 있습니까?

SET acode='' AND status='active' 

을 0으로 평가 ''AND 상태 = '활성'의 부울 검사로이 변 :

답변

8

Gidday,

문제는 쿼리의 일부와 함께 제공됩니다. 검색어를 다음으로 변경하십시오 :

SET acode='', status='active' 
+0

D' oh! 모범생 오류, 내가 그걸 놓쳤다는 것을 믿을 수 없어 ... – DisgruntledGoat

+0

Heh, 그것은 발생합니다 - Parameters 테이블에서 UPDATE를하고 WHERE 절을 잊어 버리는 것 같은 많은 습관이 있습니다! –

관련 문제