MySQL Update не обновляет строки - PullRequest
0 голосов
/ 02 февраля 2012

Это странная проблема, с которой я столкнулся, у меня есть таблица и я пытаюсь выполнить запрос 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

1 Ответ

5 голосов
/ 02 февраля 2012

Измените предложение обновления на:

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

Ваш синтаксис SQL был неверным.Если вы хотите обновить несколько полей одновременно, вам не следует разделять их с помощью ключевого слова and, а с помощью ,.

. Также может помочь избавление от одинарных кавычек для '55068', так как этот столбецэто число.И '55068' является строковым литералом.

Убедитесь, что это предложение возвращает значение:

select * from `users` where userid=55068
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...