Я бы посоветовал вам написать функцию для очистки пользовательского ввода, а затем пропустить через нее все переменные запроса. Когда я писал свой, я делал такие вещи, как:
- экранировать одинарные кавычки,
- удалить; и другие специальные символы и
- убедитесь, что вы не можете - (комментарий) в конце утверждения.
Большинство SQL-инъекций будет пытаться что-то вроде ' or 1=1 or a='
поэтому код SQL будет:
SELECT * from mytable where mycolumn = '' or 1=1 or a=''
Таким образом, экранирование одинарных кавычек - действительно большая проблема, о которой вам нужно беспокоиться.