2013-03-09 104 views
0

我有一个在MySQL中的更新语句的问题。这里是我的发言:通过PHP执行在mysql中的更新语句不工作,而它必须工作

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

此代码,它是不会改变的值。我将它复制并复制到phpmyadmin面板,并仍然返回'0 rows affected'消息,但是如果我重新键入print_wordprint_excel列中的值0和1,则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

试着键入列名不严重的字符(')附上属性名。我知道这不应该是一个区别,但我只是做了测试和更新没有工作,除非我没有引用表名。 – 2013-03-09 11:23:50

+1

如果任何列没有通过行匹配更新,Mysql会返回0。在上面的情况下,您正在更新的所有值和DB中的激发值都是相同的。 – shola 2013-03-09 11:30:39

+0

谢谢你们,我找到了解决方法。将该位转换为int(1),然后我学到的第二件事是,如果存储的值与新值相同,更新将不会更改值。 – 2013-03-09 12:09:00

回答

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