С первым соглашусь, со вторым - не обязательно.
Я лично экспериментировал с SQL Injection и убедился на практике что передача данных через биндинг параметры исключает их возможность. По крайней мере, у меня ни разу не получилось сделать ее через такие параметры. В отличии от подстановки.
Относительно приведенной ссылки - здесь как раз биндинга нет, а есть подстановка. Вернее, это просто не очень удачный способ автоматизации. Однако, надо учитывать что имена параметров почти никогда не передаются снаружи напрямую. Это надо быть сверхнекомпетентным что-бы сделать возможность такой инъекции.
Добавлено спустя 42 минуты 24 секунды:
Вопрос по правильной организации кода.
Мне нужно сделать класс, который будет заниматься определенными операциями (криптография). Где его располагать "по фэншую"? У меня есть два варианта - в хэлперах или в отдельной папке /libs.