[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: как обработать ошибку
Basili4
есть таблица с некоторыми уникальными полями у пользюка есть возможность выбивать различные значения в поля и соответственно в эти мне надо реагировать на то что пользователь в бил не уникальное значение. вот и сам вопрос как узнать что ошибка запроса о именно в этом и возможно ли узнать в какое поле была попытка записать не уникальное значение.



Спустя 5 минут, 2 секунды (6.07.2010 - 11:12) sergeiss написал(а):
А всякие там Primary Key "не канают"? Тогда можно использовать триггеры.

И еще просьба. Либо ставь запятые (где они нужны), либо делай предложения покороче. Сложно воспринимать длинный поток слов.

Спустя 5 минут, 17 секунд (6.07.2010 - 11:17) Basili4 написал(а):
sergeiss
Не поля помечены только как уникальные, при вставки происходит ошибка если значения не уникальные это правильно. Только теперь мне надо как то объяснить пользователю, что делать. Код ошибки я получил на 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 правильно сказал, что правильный подход, это поймать ошибку зарание.

Спустя 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 и говорю пользователю что треба исправить.


_____________
Цитата
От постоянного сидения рядом с клавиатурой начинает болеть спина.


Делаю сайты, пишу скрипты php, js.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.