2012-02-02 6 views
0

これは私が気付いている奇妙な問題です。テーブルがあり、MySQL-Updateクエリを実行しようとしましたが、PHPMyAdminは0行に影響を与え続けています。MySQLアップデートで行が更新されない

表:

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' 

、ちょうど何が起こっていない、それは次のようになり、なぜ何の手掛かりを得ませんでした。あなたのSQL構文が間違っていた

UPDATE `users` SET password='encryptedthingy', name='xorinzor', last_login=NOW() 
WHERE userid=55068 

よろしく、 Jorin

答えて

4
はにあなたの更新の文章を変更し

。一度に複数のフィールドを更新する場合は、andキーワードではなく、,で区切ってください。

さらに、'55068'の単一引用符を取り除くと、その列は数値なので、助けてください。 '55068'は文字列リテラルです。

必ずこの文は値を返してください:

select * from `users` where userid=55068 
+0

これは確かにトリックをしましたが、なぜどこそこには、エラーの返されませんか? – xorinzor

+1

問題は 'password = 'encryptedthingy'で、name = 'xorinzor'とlast_login = NOW()'はMySQLで有効なブール式です。おそらく、テーブルの最初の列にその値が割り当てられています。 'select * from users'でその文の後の実際の値を確認してください。 –

関連する問題