Извините, если раньше задавались эти вопросы, но я долго не мог найти ответ.
Проблема заключается в попытке вставить строку в таблицу MySQL с несколькими уникальными ключами. Если взять в качестве ссылки следующую таблицу:
----------------------------------------
| id | username | email |
----------------------------------------
| 1 | myuser | test@test.com |
----------------------------------------
Оба имя пользователя и email являются УНИКАЛЬНЫМИ ключами. Если я выполню запрос для вставки новой строки с username = 'myuser', я получу ошибку 1062 для дублирующейся записи и некоторый текст в сообщении о том, что ключ с id 3 дублирован. Примерно так:
array(3) {
[0]=>
string(5) "23000"
[1]=>
int(1062)
[2]=>
string(34) "Duplicate entry 'myuser' for key 3"
}
Есть ли способ в PDO получить имя дублированного столбца, чтобы я мог показать пользователю, какое поле ему нужно изменить из-за этой ошибки?
Поскольку случаи таковы, что оба поля могут быть дублированы, или только первое / второе, и мне нужно сообщить пользователю, какое именно поле.
Я думал разобрать текстовое сообщение и жестко закодировать идентификатор для ключей, но завтра кто-то может изменить ключи в базе данных, сбросить ключ или добавить новый, и этот номер ключа не кажется надежным источником информация.
Или, может быть, лучший вариант - ВЫБРАТЬ все значения, которые являются ключами, чтобы проверить их перед INSERT?
Спасибо!