Delicious Bookmark this on Delicious Share on Facebook SlashdotSlashdot It! Digg! Digg



PHP : Function Reference : Database (dbm-style) Abstraction Layer Functions : dba_replace

dba_replace

Replace or insert entry (PHP 4, PHP 5)
bool dba_replace ( string key, string value, resource handle )


Code Examples / Notes » dba_replace

swain

Note that if you replace an existing entry with a larger one, it will actually create a new entry and the old one is simply lost. This is a memory leak in other words.
You might want to try padding your values to a certain size before putting them in the db file; for example, if you are storing web pages in the db, pad them out to the next 500 byte size with spaces, and strip the spaces when you read it out. This will go a long way in saving disk space. I've seen db files grow to several megabytes with only a couple hundred text files in them.


jelte dot werkhoven

Not only will dba_replace add extra entries when trying to replace an existing smaller one, it will always add a new entry if the size of the value differs from the existing entry. This is probably due to the nature of the datum struct in DBM-type databases (I work with gdbm), which consist of a void pointer and a integer containing the size of the memory pointed to. Padding the value should solve this.

samuele

For a short explanation about disk space usage, see user contrib note at dba_optimize()

Change Language


Follow Navioo On Twitter
dba_close
dba_delete
dba_exists
dba_fetch
dba_firstkey
dba_handlers
dba_insert
dba_key_split
dba_list
dba_nextkey
dba_open
dba_optimize
dba_popen
dba_replace
dba_sync
eXTReMe Tracker