MySQL запрос устанавливает поле в 0 вместо пустой строки - PullRequest
1 голос
/ 10 сентября 2009

Это меня озадачивает. У меня есть запрос MySQL, который выполняется через PDO:

$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

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

1 Ответ

8 голосов
/ 10 сентября 2009

Gidday,

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

SET acode='' AND status='active'

AND превращает это в логическую проверку '' AND status = 'active', которая оценивается как 0. Измените ваш запрос на:

SET acode='', status='active'
...