Проверка дублирующейся строки с ограниченными правами (без 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?