powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Весь столбец таблицы вывалился в '\'
5 сообщений из 5, страница 1 из 1
Весь столбец таблицы вывалился в '\'
    #32552104
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, всех приветствую!
Ситуация: InterBase 7.1. Клиент php4.0

Есть таблица
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE TABLE KOV_STORAGE 
(
  ID	INTEGER NOT NULL,
  BLANK_ID	INTEGER,
  BLANK_TYPE	SMALLINT default  1 ,
  ROW_ID	INTEGER default  0 ,
  CELL_ID	INTEGER default  0 ,
  MAT_NAME	VARCHAR( 150 ) CHARACTER SET WIN1251,
  MEASURE_ID	SMALLINT,
 PRIMARY KEY (ID)
);

В поле MAT_NAME локаничным образом вносятся изменения и инсерты
Djn
Код: plaintext
1.
2.
$ins_str = 'insert into KOV_STORAGE (ID, BLANK_ID, BLANK_TYPE, ROW_ID, CELL_ID, MAT_NAME, MEASURE_ID) values (0, 0, '.$kov_act.', '.$row_id.', '.$cell_id.', _win1251"'.$mat_name.'", '.$measure_id.');';
etc
и
Код: plaintext
1.
$upd_str = 'update KOV_STORAGE set ROW_ID='.$row_id.', CELL_ID='.$cell_id.', MAT_NAME=_win1251"'.$mat_name.'", MEASURE_ID='.$measure_id.' where ID='.$blank_id.';';
etc

Все было ОК уже 2-3 месяца, но сегодня утром мне звонит заказчик и плачущим голосом докладывает:
"Ушли все названия материалов... ы-ы-ы-ы"
делаю выборку поля MAT_NAME и наблюдаю, все значения столбца изменились на символ '\' кое какие стали '\\\\\'
????????????????????
В чем дело, господа? Какие есть мысли?
Может существуют некоторые сочетания символов, которые InterBase интерпретирует как-то по своему и выполняет какие-то оперции???
Например я заметил, что если в названии ввести симыол '\' то он запоминается как "\\". Т.е. слово 'При\вет' запостится как 'При\\вет'
Возможность диверсии не обсуждаю - диверсия есть диверсия.

Итак, какие мнения?
...
Рейтинг: 0 / 0
Весь столбец таблицы вывалился в '\'
    #32552212
Фотография fedd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
где Php код, которым вызывается insert|update запросы и все строки до него? нет ли там волшебной функции addslashes ?
...
Рейтинг: 0 / 0
Весь столбец таблицы вывалился в '\'
    #32552226
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Символ '\' - является зарезервированным для PHP, для того чтобы его сохранить нужна конструкция '\\'. Добавление осуществляется с помощью addslashes(), а удаление stripslashes(). Не знаю, м.б. можно с помощью настроек добиться тех же результатов без использования ф-ий. Почитать можешь здесь .
...
Рейтинг: 0 / 0
Весь столбец таблицы вывалился в '\'
    #32552358
IGORRR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Господа, спасибо, не знал про addslashes :(((
Я ее не использовал...
Так как мне лучше делать?
Может JavaScriptoм запретить ввод символа '\'
а со строками запросов сделать так:
Код: plaintext
$ins_str = addslashes('insert into KOV_STORAGE (ID, BLANK_ID, BLANK_TYPE, ROW_ID, CELL_ID, MAT_NAME, MEASURE_ID) values (0, 0, '.$kov_act.', '.$row_id.', '.$cell_id.', _win1251"'.$mat_name.'", '.$measure_id.');');
?????
Я восстановил почти все значения из бэкапа, но повторить ситуацию пока не смог?
...
Рейтинг: 0 / 0
Весь столбец таблицы вывалился в '\'
    #32552459
Dik76
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
запрещать слешь не обязательно, используй при посадке addslashes, а при выводе stripslashes и все должно быть нормально.
да если в установках magic_quotes_gpc включена, то обработка будет производится, а вот если выключена, то придется юзать addslashes однозначно.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Весь столбец таблицы вывалился в '\'
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]