Вопрос по PHP + mySQL.

2354570

Допустим, я описываю одно из полей таблицы как id int auto_increment primary key.
Если мне надо изменить эту строку и я делаю запрос update ... where id = $id , в таблицу вместо изменения существующей добавляется новая строка с новым id.
Как решить такую проблему?

stm7884696

значит в запросе косяк...
всегда работало...
Посмотри запрос, потесть его через шел...
короче - НОНСЕНС!

2354570

Кстати, был сегодня на спецкурсе Кузнецова (главный спец на ВМК по БД подошёл к нему и описал эту проблему, было интересно, что он скажет.
Он вообще меня огорчил тем, что, мол, описанное таким образом поле по стандарту SQL делает всю строку read-only. Т.е. апдейт в таком случае ничего, по идее, дать не может, кроме новой строки.
Но mySQL - всё же несколько другое, думаю, как-то эта проблема должна решаться.

stm7884696

продолжаю считать это нонсенсом...
У меня на таких запросах апдейт инфа построен на 20ти сайтах... и все отлично работает...
Ботай ошибки синтаксиса и пунктуации через вомандную строку MySQL

stm5981037

Напиши структуру таблицы и запрос который ты делаешь
А то так на кофейной гуще никто не угадает ;-)

2354570

Да всё, в общем, весьма банально.
Таблица:
mysql_query("create table districts(id int auto_increment primary key, name_ru text, name_en text)");
Update:
mysql_query("update districts set(name_ru = '{$rus}', name_en = '{$en}') where id={$id}");

stm5981037

Только что проверил на mysql 4.0
Все замечательно заменяет, ничего нового не вставляет.
В третьем уверен на 100% что тоже будет все ок.
Поправочка в UPDATE sql'е надо после set скобочки убрать:
UPDATE districts SET name_ru = 'rus', name_en = 'en' WHERE id =2
Ищи ошибку в другом месте

stm7884696

попробуй
.... 'id' = $id....  
Оставить комментарий
Имя или ник:
Комментарий: