Символ & (амперсанд) не вставляет базу данных

0

Когда я вставляю значение из textarea, мой SQL-запрос не вставляет данные после '&' character.before '&' все символы обновляются в базе данных. Я использую функцию mysql_real_escape_string(). Что нужно для этого особого характера?

  • 0
    Можете ли вы показать весь код или хотя бы несколько строк, где это происходит?
Теги:

3 ответа

1

Нет, ничего общего с этим персонажем.
Но вам определенно нужно отлаживать код, чтобы узнать, что произошло с вашими данными.
Проследив его по всему пути от textarea до базы данных.
Скорее всего, он даже не присутствует в запросе. У вас меньше всего печатать этот запрос и проверить, все ли в порядке. Если нет - отследите. Распечатайте текстовые данные в разных местах вашего script, чтобы поймать место, где утрачен амперсанд.

0

Вероятно, стоит убедиться, что вы вставляете строку в кавычки. В противном случае нам понадобится более подробная информация!

Неправильно:

UPDATE table SET value = & WHERE field = 'foo'

Справа:

UPDATE table SET value = '&' WHERE field = 'foo'
-1

У вас также есть волшебные кавычки, включенные в вашем php.ini? Это может привести к некоторым ошибкам.

Вы можете проверить его, запустив этот код на новой странице.

if(get_magic_quotes_gpc())
    echo "Magic quotes are enabled";
else
    echo "Magic quotes are disabled";

Если у вас активированы магические кавычки, и вы пытаетесь выполнить mysql_real_escape_string, вы можете удваивать действия. Другие вещи для проверки: слишком ли длинный текст помещается в соответствующий столбец? MySQL усекает данные, чтобы они помещались, вместо того, чтобы бросать ошибку, которая слишком велика.

  • 0
    Я работаю на живом сервере. Я не могу изменить файл php.ini. Есть ли другой способ?
  • 0
    Хороший программист не должен полагаться на догадки
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню