Php mysqli prepare vs query

Рейтинг: 0Ответов: 1Опубликовано: 04.11.2014

Возник вопрос, что безопаснее/лучше/грамотнее юзать. Сейчас на сайте используется ещё старая библиотека mysql, собираюсь переводить на mysqli объектную.
Дает ли мне что-либо использование метода prepare? Я так понимаю, его фишка в защите от инъекций из-за типизации и не только. Если использовать просто метод ->query, будет ли это опаснее?

P.S. У меня свои методы приёма GET/POST:

class Http
{

    public static function Get($request) {
        $result = @$_GET[$request];
        if (get_magic_quotes_gpc()) {
            $result = stripslashes($result);
        }
        $link = Repo::db_connect();
        $result = mysql_real_escape_string($result, $link);
        Repo::db_close();

        return $result;
    }

    public static function Post($request) {
        $result = @$_POST[$request];
        if (get_magic_quotes_gpc()) {
            $result = stripslashes($result);
        }
        $link = Repo::db_connect();
        $result = mysql_real_escape_string($result, $link);
        Repo::db_close();

        return $result;
    }
}

Ответы

▲ 2Принят

Конечно, лучше использовать подготовленные запросы, но не всегда конечно же. Всё, как правило, зависит от ситуации, если в запрос не передаются какие-либо внешние данные, то в данном случае лучше использовать обычный query, нежели prepare.

По фильтрациям POST/GET:

$_GET = array_map('stripslashes', $_GET);

Чудеса бывают.

array_map() or array_filter()