Запрос MySQL устанавливает поле в 0 вместо пустой строки

StackOverflow https://stackoverflow.com/questions/1402747

Вопрос

Это меня озадачивает.У меня есть запрос 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

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

Это было полезно?

Решение

Днем,

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

SET acode='' AND status='active'

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

SET acode='', status='active'
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top