2010-12-05 3 views
0

Это, наверное, глупая ошибка на моей стороне, я знаю.MySql UPDATE странное поведение

Я пытался добавить суффикс ко всем заголовкам сообщений и конкретному тегу ко всем моим сообщениям в своем блоге (блог - это специально созданный код для учебных целей). Как только это не сработало, я попытался обновить его вручную, используя phpMyAdmin, но без успеха.

Итак, почему это не работает:

UPDATE 
    posts 
SET 
    title = 'myNewTitle', 
    tags = 'myStupidTag' 
WHERE 
    id = 1 

Все, что я получаю OK статус от MySQL, но влияет с 0 строк. Однако, если я использую тот же ID в статье WHERE в SELECT, я получаю данные сообщений просто отлично.

Неправильно ли с моим запросом?

А вот таблица:

CREATE TABLE IF NOT EXISTS `posts` (
    `ID` int(10) unsigned NOT NULL AUTO_INCREMENT, 
    `title` varchar(512) DEFAULT NULL, 
    `link` varchar(512) DEFAULT NULL, 
    `rating` tinyint(3) unsigned DEFAULT NULL, 
    `html` text, 
    `tags` varchar(512) DEFAULT NULL, 
    `description` varchar(512) DEFAULT NULL, 
    PRIMARY KEY (`ID`) 
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=80 ; 
+0

показать нам «ОБНОВЛЕНИЕ ... ВЫБРАТЬ», а также – ajreal 2010-12-05 12:37:12

+1

Если после обновления есть 0 строк, это означает, что нет данных для обновления, т. е. значения заголовка и тега уже установлены в myNewTitle и myStupidTag – Mchl 2010-12-05 13:18:11

+0

Следуя из предыдущих комментариев, попробовали ли вы SELECTing строку с идентификатором 1 до и после UPDATE? Как говорит Mchl, UPDATE вернет OK, если синтаксис UPDATE верен, и 0 строк, если ни одна строка не была изменена. Возможно, вы могли бы попробовать использовать разные значения для своих столбцов ... – Mike 2010-12-05 13:47:35

ответ

0

Вы действительно уверены, что PHPMyAdmin говорит OK для вашего UPDATE запроса, хотя нет затронутых строк?

Ваш пункт WHERE не соответствует действительности - поле ID должно быть прописным, а не строчным.

Попробуйте вместо этого:

UPDATE posts 
SET title = 'myNewTitle', 
    tags = 'myStupidTag' 
WHERE ID = 1 

вид касается

EDIT:

неправильно - пользователь ajreal уже поправил меня!

Но: Ваш запрос должен работать - я пробовал с вашей схемой таблицы и некоторых случайных сгенерированных данных ...

-1

MySQL нечувствительность случае на окнах столбцов и UNIX, попробуйте

select * from posts where ID=1 

проверить ваши таблицы столков имеют данные

Смежные вопросы