Использование PDO и MYSQLi является хорошей практикой для предотвращения инъекций SQL, но если вы действительно хотите работать с функциями и запросами MySQL, было бы лучше использовать
$unsafe_variable = mysql_real_escape_string($_POST['user_input']);
Есть больше возможностей для предотвращения этого: например, идентификация - если ввод представляет собой строку, число, символ или массив, есть так много встроенных функций для обнаружения этого. Кроме того, было бы лучше использовать эти функции для проверки входных данных.
$unsafe_variable = (is_string($_POST['user_input']) ? $_POST['user_input'] : '');
$unsafe_variable = (is_numeric($_POST['user_input']) ? $_POST['user_input'] : '');
И гораздо лучше использовать эти функции для проверки входных данных с помощью mysql_real_escape_string
.
В разработке программного обеспечения, многоуровневая архитектура (часто называемый n-tier архитектура) является клиент-серверной архитектурой, в которой, представление, обработка приложения и управление данными являются логически отдельными процессами. Например, приложение, которое использует промежуточное программное обеспечение для запросов служебных данных между пользователем и базой данных, использует многоуровневую архитектуру. Наиболее широкое использование "многоуровневой архитектуры" относится к трехуровневой архитектуре.
Это спорно, какие количества как "уровни", но по-моему это должно, по крайней мере, пересечь границу процесса. Или иначе это назвало слои. Но, это не должно быть в физически различных машинах. Хотя я не рекомендую его, Вы можете размещать логический уровень и базу данных по тому же полю.
Редактирование : Одна импликация - то, что уровень представления и логический уровень (иногда названный Слоем Бизнес-логики) должны пересечь границы машины "через провод" иногда по ненадежной, медленной, и/или незащищенной сети. Это очень отличается от простого Настольного приложения, где данные живут на той же машине как файлы или веб-приложение, где можно поразить базу данных непосредственно.
Для программирования n-tier, необходимо упаковать данные в своего рода мобильной форме, названной "набором данных", и управлять ими по проводу..NET класс DataSet или протокол веб-сервисов как SOAP является немногими из таких попыток управлять объектами по проводу.
Это на основе того, как Вы разделяете уровень представления от логики основного бизнеса и доступа к данным ( Википедия )
3-уровневый Уровень представления средств + уровень Component + Уровень доступа к данным. N-tier - когда ненужные слои добавляются вне этих трех, и это маркировано модным словечком, таким образом, не кажется, что Ваши архитекторы являются набором взломанных обезьян. Я говорю это на основе архитектуры N-tier, с которой я должен работать.
Это - мое понимание, что N-Tier разделяет бизнес-логику, клиентский доступ и данные друг от друга использующего отдельные реальные машины. Теория состоит в том, что один из них может быть обновлен независимо от других.
Это - модное словечко, которое относится к вещам как нормальная веб-архитектура с, например, уровень Javascript - ASP.Net - Middleware - Database. Каждой из этих вещей является "уровень".