Проблема ковычек и addslashes

Бочонок

http://frontender.info
Проблема ковычек и addslashes

Надо занести в бд большие куски текста с ' и др. спец символами...

Логично сделать addslashes и не мучится, но заказчик требует что бы в бд все лежало "в том виде, в котором в файлах написано и не иначе."

Можно ли как то решить проблему ?

в переменных большие куски текста с '.

PHP:
$query="INSERT INTO mr (
chem_n,
chem_f,
sinonim,
...
addr,
zaya
)   
values('".
$chem_n
."','".
$chem_f
."','".
$sinonim
...
."')";
 

Бочонок

http://frontender.info
Важное замечание! Добавленные слеши НЕ идут в базу. Они нужны только в запросе. При попадании в базу слеши отбрасываются. Соответственно, распространенной ошибкой является применение stripslashes при получении данных из базы.

Я читал DUMP базы... там естественно слеши есть. можете торжественно записать меня в идиоты.
 

yugene

Отошел от дел
Автор оригинала: Бочонок
Я читал DUMP базы... там естественно слеши есть. можете торжественно записать меня в идиоты.
Если не секрет, что за дамп базы ты читал? Случаем, не тот, что начинается со слова INSERT?
 

Frol

Новичок
Я читал DUMP базы... там естественно слеши есть. можете торжественно записать меня в идиоты.
c удовольствием.
ты так и не понял для чего добавляются слеши.
ты просто запомнил, что их надо добавлять.
 

Бочонок

http://frontender.info
2yugene :
тот... я что то не так сказал ?

2Frol:
слеши добавляются для экранирования спец. символов. так ?
а запомнить у меня бы не получилось - черезчур плохая память :)
 

yugene

Отошел от дел
Автор оригинала: yugene
Если не секрет, что за дамп базы ты читал? Случаем, не тот, что начинается со слова INSERT?
Автор оригинала: Бочонок
yugene : тот... я что то не так сказал ?
Я поясню. То, что ты называешь дампом базы, не совсем есть дамп. Это просто набор SQL-инструкций, выполнив которые ты получишь базу в ее нынешнем виде. Поскольку они основаны на INSERT'е, естественно, что там есть и слеши, поскольку INSERT выполняет добавление в базу. А всякое добавление должно "слешироваться". В базе слеши не хранятся, поверь мне (и всем остальным). Чтобы проверить, просмотри в папке mysql\data файлы с расширением MYD, увидишь, что ТАМ внутри слешей нет.
 

Бочонок

http://frontender.info
поверь мне (и всем остальным). - гм, поверил. еще после сообщения neko...

не совсем есть дамп. - а что тогда является дампом ?
 

chira

Новичок
Бочонок
То, что ты называешь дампом базы, не совсем есть дамп.
дамп есть дамп, здесь можно (и нужно) было сказать, что дамп не есть база данных.
назначения дампа и базы данных, разные, поэтому и содержимое файлов разное.
поэтому просмотрев содержимое файла дампа, нельзя сказать, как храняться данные в таблицах, это и не должно тебя волновать.
 

Бочонок

http://frontender.info
2yugene,2chira,2neko : Спасибо. Вопрос исчерпан. (Ну разве что еще кто то захочет признать меня идиотом )
 

Romantik

TeaM PHPClub
Недавно тестировал систему, так там тоже заказчик поставил тербование хранить данные как есть (ASP+MSSQL)
Оказалось, что в MSSQL можно ложить "как есть" и при выводе просто:
<xsl:value-of disable-output-escaping="yes" select="$text" />
и клиенту выдает "как есть" данные.
 
Сверху