应该注意的是,在更改数据库的同时遍历数据库并不总是安全的。例如
<?php
$db=dba_open(...);
// 删除所有长度小于 10 个字符的值
for ($key=dba_firstkey($db); $key!==false; $key=dba_nextkey($db)) {
$s=dba_fetch($key, $db);
if (strlen($s)<10) {
dba_delete($key, $db);
}
}
?>
上面的示例在 db4 处理程序中可以正常工作,但在 gdbm 中则不行。它是特定于处理程序的。