2013-03-09 5 views
0

У меня проблема с оператором обновления в Mysql. Вот мое заявление:Оператор обновления в mysql не работает, хотя он должен работать

update `momtos_kullanici` set `firma_quantity`='1', `auditor_quantity`='1', `print_word`=0, `print_excel`=0 WHERE `MK_ID`='2690' 

Этот код выполняется через PHP и не меняет значения. Я прочитал его и скопировал его на панель phpmyadmin, и все же он возвращает сообщение «0 rows affected», но если я повторно укажу значения 0 и 1 в print_word и print_excel значениях в phpmyadmin, он будет работать.

Column   Type  null default 

auditor_quantity int(11) No 1 

firma_quantity int(11) No 1 

print_word  bit(1) No 0 

print_excel  bit(1) No 0 

Я попытался поместить число в кавычки и даже истинные и ложные слова, то же самое. Я столкнулся с той же проблемой с полем varchar. В то время я просто сказал «о, хорошо ...», но этот действительно сумасшедший.

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

+0

Попробуйте ввести имя колонки без серьезного характера ('). Я знаю, что это не должно быть разницей, но я просто сделал тест, и обновление не работало, если я не назвал имя таблицы. –

+1

Mysql возвращает 0 в случае, если какой-либо столбец не обновляется, хотя соответствует строке. В приведенном выше случае все значения, которые вы обновляете, и захватывающее значение в БД одинаковы. – shola

+0

Спасибо, ребята, я нашел обходное решение. преобразовал бит в int (1), и, во-вторых, я понял, что обновление не изменит значения, если сохраненные значения совпадают с новыми. –

ответ

0

Не заключайте ваши имена атрибутов в кавычки

0
update momtos_kullanici set firma_quantity=1, auditor_quantity=1, print_word=0, print_excel=0 WHERE MK_ID=2690 
Смежные вопросы