这是我遇到的一个奇怪问题,我有一个表并尝试执行MySQL-Update查询,但是,PHPMyAdmin一直说0行受影响。
表:
CREATE TABLE IF NOT EXISTS `users` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`userid` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`last_login` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=55069 ;
--
-- Dumping data for table `users`
--
INSERT INTO `users` (`id`, `userid`, `name`, `last_login`) VALUES
(1, 55068, 'temp', '2012-02-02 09:04:50');
查询:
UPDATE `users` SET name='xorinzor' AND last_login=NOW() WHERE userid='55068'
没有错误返回,没有任何事情发生,也不知道为什么会这样。
此致 Jorin
答案 0 :(得分:5)
将更新语句更改为:
UPDATE `users` SET password='encryptedthingy', name='xorinzor', last_login=NOW()
WHERE userid=55068
您的SQL语法错误。如果您想一次更新多个字段,则不应将其与and
关键字分隔,而应使用,
。
另外,删除'55068'
的单引号应该会有所帮助,因为该列是一个数字。 '55068'
是一个字符串文字。
确保这句话返回一个值:
select * from `users` where userid=55068