Использование 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
.
Свист является новым проектом, который подобен lucene, но является чистым Python.
Единственный один чистый Python (не включающий даже C расширение) ищет решение, о котором я знаю, Nucular. Это медленно (намного медленнее, чем PyLucene) и нестабильно все же.
Мы переместились от находящегося в PyLucene домашнего испеченного поиска и индексирующий к Solr, но YMMV.
Я недавно нашел pyndexter. Это предоставляет абстрактный интерфейс всевозможным механизмам/индексаторам полнотекстового поиска бэкенда. И это поставлется с реализацией чистого Python по умолчанию.
Эти вещи могут быть катастрофически медленными хотя в Python.
Для некоторых приложений переоценен чистый Python. Смотрите на Xapian.
lupy был lucene портом к чистому Python. lupy люди предлагают, чтобы Вы использовали PyLucene. Извините. Возможно, можно использовать источники Java в сочетании с Jython.
+1 к ответам Xapian и Pyndexter.
Хорек на самом деле записан в C с привязкой Ruby на вершине. Чистая поисковая система Ruby была бы еще медленнее, чем чистый Python один. Я хотел бы видеть, что "кто-то еще" пишет уровень Cython/Pyrex для интерфейса Python, чтобы Рыться, но не сделаю этого сам потому что почему беспокойство, когда существует привязка Python для Xapian.
После недель поиска этого я нашел хорошее решение Python: repoze.catalog. Это не строго только для Python, потому что это использует ZODB для устройства хранения данных, но это кажется лучшей зависимостью мне, чем что-то как SOLR.