Когда я вставляю значение из textarea, мой SQL-запрос не вставляет данные после '&' character.before '&' все символы обновляются в базе данных. Я использую функцию mysql_real_escape_string()
.
Что нужно для этого особого характера?
Нет, ничего общего с этим персонажем.
Но вам определенно нужно отлаживать код, чтобы узнать, что произошло с вашими данными.
Проследив его по всему пути от textarea до базы данных.
Скорее всего, он даже не присутствует в запросе. У вас меньше всего печатать этот запрос и проверить, все ли в порядке. Если нет - отследите. Распечатайте текстовые данные в разных местах вашего script, чтобы поймать место, где утрачен амперсанд.
Вероятно, стоит убедиться, что вы вставляете строку в кавычки. В противном случае нам понадобится более подробная информация!
Неправильно:
UPDATE table SET value = & WHERE field = 'foo'
Справа:
UPDATE table SET value = '&' WHERE field = 'foo'
У вас также есть волшебные кавычки, включенные в вашем php.ini? Это может привести к некоторым ошибкам.
Вы можете проверить его, запустив этот код на новой странице.
if(get_magic_quotes_gpc())
echo "Magic quotes are enabled";
else
echo "Magic quotes are disabled";
Если у вас активированы магические кавычки, и вы пытаетесь выполнить mysql_real_escape_string, вы можете удваивать действия. Другие вещи для проверки: слишком ли длинный текст помещается в соответствующий столбец? MySQL усекает данные, чтобы они помещались, вместо того, чтобы бросать ошибку, которая слишком велика.