mysql_real_escape_string удаляет & -char - PullRequest
0 голосов
/ 24 марта 2012

У меня есть ссылка: http://www.adress.com/Article.aspx?ID=262839&R=R1

После использования mysql_real_escape_string она меняется на http://www.adress.com/Article.aspx?ID=262839

Таким образом, она удаляет все из & -char: "& R = R1".

Почему?И как я могу это исправить?

--- РЕДАКТИРОВАТЬ Спасибо за ответы.Я посмотрю в PDO.

И, конечно, вы были правы, проблема не вызвана mysql_real_escape_string.Данные теряются в моем запросе jquery ajax.

$('.share').live('click', function(event) {
        var thesharelink = $(this);
        var thehref = $(this).attr('href');
        $(this).hide();
        $.ajax({
            url: 'edit.php',
            type: 'POST',
            data: 'thehref=' + thehref,
            error: function(){
                $(thesharelink).replaceWith("Could not share");
            },
            contentType: 'application/x-www-form-urlencoded;charset=UTF-8',
            success: function(result1) {
                $('body').append(result1);
                $(thesharelink).replaceWith(msg);
            }
        });
});

Поэтому, когда данные поступают в php-файл, они теряются.Кажется, что добавление escape решает проблему.Хотя я приветствую любые предложения по улучшению.

Ответы [ 2 ]

1 голос
/ 24 марта 2012

Я предлагаю вам перейти на PDO и использовать подготовленные заявления.Пример использования (заимствовано из подготовленных PHP PDO операторов ):

/* Execute a prepared statement by passing an array of values */
$sth = $dbh->prepare('SELECT name, colour, calories
    FROM fruit
    WHERE calories < ? AND colour = ?');

$sth->execute(array(150, 'red'));

$red = $sth->fetchAll();
0 голосов
/ 24 марта 2012

Таким образом, он удаляет все из & -char

Это не так.

как я могу это исправить?

Найдите действительную причину удаления символа & *.

...