Новый ответ
Поскольку вы обновили свой вопрос, чтобы уточнить, что вы ищете, я хотел предложить другое решение. Не беспокойтесь о том, что пользователь отправляет в виде запроса, опять же, MySQL выдаст ошибку, если у него недостаточно привилегий, чтобы что-то сделать.
Зафиксируйте эту ошибку с помощью mysql_error()
, а номер ошибки - с помощью mysql_errno()
. Если в сообщении об ошибке указано "Команда DROP отклонена ..." или номер ошибки - 1142 , значит, вы знаете, что они пытались пошалить Искать термины в этой ошибке лучше, чем искать термины в их запросе, так как вы правильно указали, что в их запросе могут на законных основаниях использоваться плохие слова.
Оригинальный ответ
Если ваш пользователь может только SELECT
, то он не может DROP
или DELETE
. Поиск этих слов не повышает безопасность, поскольку база данных будет отклонять любые запросы, которые явно не разрешены для данного пользователя.