Реклама на сайте Advertise with us

Как убить запись во flatfile?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:



С нами с 13.11.06
Сообщения: 777
Рейтинг: 418

Ссылка на сообщениеДобавлено: 07/11/08 в 13:05       Ответить с цитатойцитата 

Здравствуйте. Скажите пожалуйста. При использовании функции dba_delete() при работе с flatfile удаление из файла происходит, но чисто "формально", сама запись остается, только помечается как удаленная. Тоже самое и при использовании dba_insert(). В результате скрипт, который при каждом запуске должен выдерать значение из базы, менять его и перезаписывать обратно в базу, тупо наращивает объем базы. То есть размер увеличивается при каждом запуске, вытаскиваемое значение помечается как удаленное, а в конец файла добавляется новая запись((( Как решить проблему? Использовать другой тип базы? В общем помогите пожалуйста разобраться!

0
 

www.phpdevs.com

С нами с 24.10.02
Сообщения: 16633
Рейтинг: 16105


Передовик Master-X (01.09.2005) Передовик Master-X (16.09.2005) Передовик Master-X (01.10.2005) Передовик Master-X (16.08.2006) Передовик Master-X (16.10.2006) Ветеран трепа Master-X ()
Ссылка на сообщениеДобавлено: 07/11/08 в 13:13       Ответить с цитатойцитата 

dba_optimize() используй

Пишу на php/mysql/django за вменяемые деньги.
Обращаться в личку.

0
 



С нами с 03.10.08
Сообщения: 129
Рейтинг: 141

Ссылка на сообщениеДобавлено: 07/11/08 в 13:44       Ответить с цитатойцитата 

чет не понял, делет- инсерт, а упдате не легче использовать?

Пишу скрипты, асикью 444584-921

0
 



С нами с 03.10.08
Сообщения: 129
Рейтинг: 141

Ссылка на сообщениеДобавлено: 07/11/08 в 13:49       Ответить с цитатойцитата 

dba_replace
(PHP 3>= 3.0.8, PHP 4)

dba_replace - замещает или вставляет вхождение.

Описание
bool dba_replace (string key, string value, resource handle)

dba_replace() замещает или вставляет вхождение, описанное key и value в БД handle.

key это ключ вставляемого вхождения.

value это вставляемое значение.

handle это дескриптор БД, возвращаемый функцией dba_open().

dba_replace() возвращает TRUE или FALSE, в зависимости от успеха или неудачи, соответственно.

Пишу скрипты, асикью 444584-921

0
 



С нами с 13.11.06
Сообщения: 777
Рейтинг: 418

Ссылка на сообщениеДобавлено: 07/11/08 в 13:55       Ответить с цитатойцитата 

Stek писал:
dba_optimize() используй

Что то оно не помогает (
Код:

$dataBase = dba_open("databases/execution.db", "w", "flatfile");
$execTimeArray = unserialize(dba_fetch(0, $dataBase));
...
Тут идет обработка массива замудренного...
...
dba_replace(0, serialize($execTimeArray), $dataBase);
dba_optimize($dataBase);
dba_close($dataBase);


Исходная база:

Код:

1
01893
a:24:{i:0;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}i:1;a:2:{i:0;a:3:
..........
{i:0;i:0;i:1;i:1;i:2;i:0;}}i:23;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}}


После выполнения скрипта:

Код:

1
ъ1893
a:24:{i:0;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}i:1;a:2:{i:0;a:3:
..........
{i:0;i:0;i:1;i:1;i:2;i:0;}}i:23;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}}1
01894
a:24:{i:0;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}i:1;a:2:{i:0;a:3:
..........
{i:0;i:0;i:1;i:1;i:2;i:0;}}i:23;a:2:{i:0;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}i:1;a:3:{i:0;i:0;i:1;i:1;i:2;i:0;}}}


Может я не так как то использую?

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »