Table 1. DBA locking
already open mode = "rl" mode = "rlt"
mode = "wl" mode = "wlt" mode = "rd"
mode = "rdt" mode = "wd" mode = "wdt"
not open ok ok ok ok ok ok ok ok
mode = "rl" ok ok wait false illegal illegal illegal
illegal
mode = "wl" wait false wait false illegal illegal
illegal illegal
mode = "rd" illegal illegal illegal illegal ok
ok wait false
mode = "wd" illegal illegal illegal illegal wait
false wait false
ok: the second call will be successfull.
wait: the second call waits until dba_close() is called
for the first.
false: the second call returns false.
illegal: you must not mix "l" and "d"
modifiers for mode parameter.
Note: Since PHP 4.3.0 it is possible to open database files
over network connection. However in cases a socket connection
will be used (as with http or ftp) the connection will be
locked instead of the resource itself. This is important
to know since in such cases locking is simply ignored on
the resource and other solutions have to be found.
Note: Locking and the mode modifiers "l", "d",
"-" and "t" were added in PHP 4.3.0.
In PHP versions before PHP 4.3.0 you must use semaphores
to guard against simultaneous database access for any database
handler with the exception of GDBM. See System V semaphore
support.
Note: Up to PHP 4.3.5 open mode 'c' is broken for several
internal handlers and truncates the database instead of
appending data to an existant database. Also dbm and ndbm
fail on mode 'c' in typical configurations (this cannot
be fixed).
See also: dba_popen() dba_close()
|