Проверка дублирующейся строки с ограниченными правами (без SELECT)

Быстро и грязно: я хотел бы проверить, существует ли конкретная строка, используя только права INSERT.

объяснение
В целях безопасности я ограничил свою учетную запись в базе данных правами INSERT. Я понимаю, что есть и другие шаги, которые нужно предпринять после mysqli_real_escape_string, но, будучи новичком как в PHP, так и в MySQL, я подумал, что это лучший способ поймать все инъекции.

После отправки форма проверяет правильность и пытается создать строку, пропускает или перехватывает ошибку 1062 и сообщает, что имя пользователя уже существует.

Теперь я хочу реализовать упреждающий вызов AJAX с использованием той же учетной записи в БД. Я думал о выдаче фиктивного оператора обновления (который не вносит изменений) для проверки на наличие дубликатов, но, очевидно, что он не работает без прав SELECT. SELECT right - это главное, чего я пытался избежать; Это наивно и как правильно поступить?

1 ответ

Вы можете использовать INSERT IGNORE INTO таблицу

см. http://bogdan.org.ua/2007/10/18/mysql-insert-if-not-exists-syntax.html

Есть вопрос, очень похожий на ваш: как "вставить, если не существует" в MySQL?

Другие вопросы по тегам