Версия 195, ревизия 3232 от 13.01.12.
Заметил такую особенность.
В подчиненной таблице есть вычисление, которое срабатывает при сохранении таблицы. В нем через переменую $line я меняю значения одного из полей (текстовое поле) текущей строки. Далее применяю sql-запрос для выбора группы строк с определенными параметрами. В эту группу входит и текущая строка. Так вот если брать значение этого поля для текущей строки из sql-запроса, то значение будет предыдущим, хотя я его через переменную $line уже поменял.
Если значение поля менять через update_query, то sql-запрос сразу видит уже новое значение
1. так и должно быть?
2. Если sql-запрос берет строки из базы, то получается что $line['XXX']=ЗНАЧЕНИЕ меняет поле не в базе, а где-то в промежуточном месте, а уже потом это переносится в базу. Если это так, тогда в какой момент значение в базе реально меняется?
3. В любом случае это как-то не логично.
$line и sql-запрос
Автор arsenal, 18 янв. 2012 02:16
Сообщений в теме: 2
#1
Отправлено 18 Январь 2012 - 02:16
#2
Отправлено 18 Январь 2012 - 09:26
Разумеется, так и должно быть. Что здесь нелогичного то? $line - это всего лишь переменная, значение переменной никак не может влиять на значения полей в БД, пока ее значение явно не будет туда переписано. В данном случае это делает движок программы после исполнения кода вычисления. Если у вас в самом вычислении нет записи данных в БД, то как раз таки нелогично думать что данные как-то сами собой запишутся туда при изменении значения переменной. При этом, в отличии от записи в $line, функция update_query непосредственно записывает данные в БД.
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных














