Как я могу поймать ошибку дублированного ключа в PHP для обработки ограничения индекса уникального ключа mySQL? - PullRequest
0 голосов
/ 03 февраля 2012

ОК. У меня тоже проблема с этим - у меня есть MySQL базы данных и страницы PHP. Я отправляю форму в базу данных, и она уже проверяет наличие пустых строк и выделяет поля, если есть ошибки и т. Д.

Хотя в одном из полей (в частности, в имени пользователя) мне нужно проверить, существует ли оно уже в Col_1 БД, и если ИСТИНА, то выдать предупреждение об ошибке, не отправляя форму, и если ЛОЖЬ пройти через форму, которая уже проверка.

Так что настоящий вопрос, который у меня есть ... (может быть, тоже m3tsys) ... это действительно так:

Есть ли способ в onBlur / onChange / onSubmit (все это может помешать форме отправить данные в БД) моего поля формы, чтобы проверить, существует ли в db, а затем выдать предупреждение?

или

Есть ли другой, возможно, более простой способ, о котором можно подумать? Я знаю, что все усложняю, тем больше я думаю об этом, извините.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2012

Использовать AJAX.

При изменении поля имени пользователя вызовите скрипт PHP, который проверяет, существует ли имя пользователя.Если он существует, покажите ошибку на странице.Если нет, он доступен.

0 голосов
/ 25 апреля 2019

Если я не знаю Ajax, я бы сделал что-то подобное, я бы проверил, существует ли это значение или нет.Если он существует, я вручную генерирую ситуацию, когда получаю ошибку для php, например: $ error = 'have duplicate Key $ your_column';затем просто укажите, где вы хотите показать эту ошибку.

Второй способ, которым я узнал, что в дублирующем ключе php генерирует ошибку с именем

  on duplicate key

, и я поймаю ее и покажучто-то, как я уже упоминал выше.Но на данный момент я не знаю, как я могу поймать эту ошибку.Возможно, mysqli_error () может быть полезен здесь :)

Обновление

Просто проверьте прежде, есть ли в столбце какие-либо записи, и если это произойдет, если запись найдена {пользователь уже вышел} else {это новый пользователь}

...