2009-09-09 6 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 

Есть ли что-то особенное, что мне нужно делать при использовании подготовленных заявлений?

ответ

8

Gidday,

Проблема возникает с этой частью вашего запроса:

SET acode='' AND status='active' 

в И превращает это в булеву проверку «» И статус = «активного», который оценивает 0. Замените запрос:

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

D'oh! Ошибка школьника, не могу поверить, что я пропустил это ... – DisgruntledGoat

+0

Хе-хе, это случается - очень похоже на мою слишком распространенную привычку делать «ОБНОВЛЕНИЕ» в таблице «Параметры» и забывать предложение «WHERE»! –

Смежные вопросы