Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Mysql_real_escape


Автор: ekodrive 21.9.2015, 21:35
Добрый день друзья есть такой класс 
Код

class REQUEST {
    function post($var){
        return $_POST[$var];
    }
    function get($var){

        return $_GET[$var];
    }
}
$request = new REQUEST();

хочу защитить запрос таким образом
Код

class REQUEST {
    function post($var){
        return mysql_real_escape_string($_POST[$var]);
    }
    function get($var){

        return mysql_real_escape_string($_GET[$var]);
    }
}
$request = new REQUEST();

но почему то выдает такую ошибку
Deprecated: mysql_real_escape_string(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead
я понимаю ошибку и меняю на Mysqli но все ровно не пашет как быть?

Автор: baldina 21.9.2015, 22:14
это не ошибка, а предупреждение, на выполнение не влияет.
в чем проявляется, что "не пашет"? вообще real_escape_string относится к текущему соединению, у вас оно установлено? 

Автор: ekodrive 29.9.2015, 18:09
baldina, спасибо за ответ вот пробовал таким образом.
Код

function connect() {
    $host = 'localhost';
    $db_name = 'db11';
    $db_user = 'user11';
    $db_password = '123456';
    return new PDO('mysql:host='.$host.';dbname='.$db_name, $db_user, $db_password);

}


Код

    $search=$_POST['search'];
    $pdo=connect();
    $sql="SELECT*FROM about WHERE title LIKE '%".$pdo->real_escape_string($search)."%'";
    $stmt=$pdo->prepare($sql);
    $stmt->execute();
    $pdo->exec("set names utf8"); 
    $num=$stmt->rowCount();
    if($num>0){
     $found = TRUE;
    while($row=$stmt->fetch(PDO::FETCH_ASSOC)){
echo $row['title'];
}


как вы поняли задача защитить запрос.
но не получается.

Автор: ksnk 29.9.2015, 20:11
http://phpfaq.ru/slashes

Всю статью читать обязательно.

http://phpfaq.ru/slashes#like - это отдельно про LIKE 

Автор: ekodrive 30.9.2015, 08:05
ksnk, спасибо что помогли. 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)