Спустя 5 минут, 2 секунды (6.07.2010 - 11:12) sergeiss написал(а):
А всякие там Primary Key "не канают"? Тогда можно использовать триггеры.
И еще просьба. Либо ставь запятые (где они нужны), либо делай предложения покороче. Сложно воспринимать длинный поток слов.
И еще просьба. Либо ставь запятые (где они нужны), либо делай предложения покороче. Сложно воспринимать длинный поток слов.
Спустя 5 минут, 17 секунд (6.07.2010 - 11:17) Basili4 написал(а):
sergeiss
Не поля помечены только как уникальные, при вставки происходит ошибка если значения не уникальные это правильно. Только теперь мне надо как то объяснить пользователю, что делать. Код ошибки я получил на Duplicate entry код 1062. Но вот как теперь узнать какое поле за косячено. Можно конечно парсить текстовую ошибку но я думал может есть еще какой нибудь способ узнать поле.
Не поля помечены только как уникальные, при вставки происходит ошибка если значения не уникальные это правильно. Только теперь мне надо как то объяснить пользователю, что делать. Код ошибки я получил на Duplicate entry код 1062. Но вот как теперь узнать какое поле за косячено. Можно конечно парсить текстовую ошибку но я думал может есть еще какой нибудь способ узнать поле.
Спустя 51 минута, 17 секунд (6.07.2010 - 12:09) vagrand написал(а):
Имхо у тебя неверный подход к проблеме. Надо не ошибку SQL-я парсить, а при помощи SELECT проверять уникальность до вставки.
Спустя 6 минут, 4 секунды (6.07.2010 - 12:15) SlavaFr написал(а):
можно еще в случае если mysql_errno($link)==1062
1)взять и при помощи обычного sql сравнить то что ты хочеш ввести, с тем что в таблице имеется.
или
2)как ты уже, сам предложил попробоват посредством strpos найти поля в mysql_error которые ты используеш в insert.
edit: 2 это не правильно. лучше вариант 1, @vagrand правильно сказал, что правильный подход, это поймать ошибку зарание.
1)взять и при помощи обычного sql сравнить то что ты хочеш ввести, с тем что в таблице имеется.
или
2)как ты уже, сам предложил попробоват посредством strpos найти поля в mysql_error которые ты используеш в insert.
edit: 2 это не правильно. лучше вариант 1, @vagrand правильно сказал, что правильный подход, это поймать ошибку зарание.
Спустя 18 минут, 43 секунды (6.07.2010 - 12:33) glock18 написал(а):
Цитата (SlavaFr @ 6.07.2010 - 09:15) |
можно еще в случае если mysql_errno($link)==1062 |
++
Спустя 41 минута, 1 секунда (6.07.2010 - 13:14) Basili4 написал(а):
Всем спасибо.
Я хотел избежать лишних запросов. зачем это делать если база сама будет следить за тем чтобы поля были уникальные. просто парсю результат mysql_error и говорю пользователю что треба исправить.
Я хотел избежать лишних запросов. зачем это делать если база сама будет следить за тем чтобы поля были уникальные. просто парсю результат mysql_error и говорю пользователю что треба исправить.
_____________