Проблема с dba_replace

ekkl

Новичок
Проблема с dba_replace

PHP 5.2.9
Вообщем кодю под линуксом. PHP:
PHP:
<?php
 ......
 public function offsetSet($key, $value) 
 {  
   $key=dba_key_split(CONFIG_SECTION.$key);
   dba_replace($key, $value, $this->dba);
  
 }
 ....
 ?>
Как вы поняли запись осуществляется через интерфейс arrayAccess
Проблема в том, что при создании нового файла первая запись в базу осуществляется без проблем, но при попытке сделать другую (или изменить существующую вызывается ошибка. ПХП говорит что то о том, что невозможно писать в секцию.
Права на папку с БД полные 0777
Владелец файла - Апач с правами записи
Что не так?

Открытия осуществляется в режиме "с"


В доккументации нашел вот это
open mode 'c' is broken for several internal handlers and truncates the database instead of appending data to an existent database. Also dbm and ndbm fail on mode 'c' in typical configurations (this cannot be fixed).
пробовал открывать в разных режимах (c w n) результат один и тот же: первый ключ вставляется без проблем (в пустой файл). Но если в файле существует хоть одна запись выскакивает ошибка
could not copy gruop [xxxxxxx-xx] to temporary stream
Подскажите, куда копать?
 

ekkl

Новичок
Да, закрывается.
Если проводить запись в уже существующую базу (создана раньше, или в текстовом редакторе) то все та же ошибка.
Запись посредством dba_insert проблем не вызывает.
 

dimagolov

Новичок
У меня фряха, для того чтобы все собралось пришлось откатиться с db41 на db4 (без этого не собирался php5-dba с поддержкой db4). Но все работает (с хендлером db4). До того, как прикрутил db4 пробовал работать через cdb, так он перезаписывать не хотел, как и у тебя, то есть один за создавал, в потом не мог открыть на запись.
 

ekkl

Новичок
cdb Это база констант. ОН и не ДОЛЖЕН перезаписывать существующие ключи.
Проблема с ини файлами
dba_insert без проблем добавляет новый ключ
dba_replace не работает в не зависимости от того существует ключ или нет. Запись происходит только в НОВЫЙ файл (пустой)

-~{}~ 29.07.09 12:10:

Хоть у кого-нибудь работает dba_replace и обработчиком inifile?
 
Сверху