Использование 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
.
Я использовал Юг , но Миграционный взгляды, обещающие также.
Мы используем Django на работе, и мы использовали dmigrations. В то время как это имеет свои причуды, это было полезно до сих пор. Некоторые функции:
manage.py
как команда. Одна проблема состоит в том, что это только в настоящее время поддерживает MySQL. Однако один из наших парней делает локальный взлом к нему для поддержки PostgreSQL, который мы используем. Как я вспоминаю, взлом не был всем этим обширным, таким образом, не должно быть ужасно трудно изрубить его для поддержки другого RDBMSs.
Мне нравится django-эволюция :
профессионалы:
недостатки:
Помимо Юга, dmigrations, django-эволюции, и Миграционный я думал, что добавлю simplemigrations как другой инструмент, я видел автоматизацию миграций Django.
я использовал три из них в прошлом, но делаю миграции вручную теперь. Я думаю о попытке на юг снова из-за последних добавленных опций.