PHP  
downloads | documentation | faq | getting help | mailing lists | | php.net sites | links | my php.net 
search for in the  
<dbase_replace_recorddblist>
view the version of this page
Last updated: Sat, 19 Apr 2003

XX. DBM Datenbankfunktionen

Diese Funktionen erlauben Ihnen den Zugriff auf Datens�tze die im DBM-Format vorliegen. Im Gegensatz zu den relationalen Datenbanken (mySQL, etc.) werden die Datens�tze in Form von ISAM-S�tzen gespeichert. DBM Datenbanken werden von verschiedenen Systemfunktionen als interne Arbeitsbibliothek ben�tzt. Diese Datenbank-Art wird auch von der Berkeley DB und GDBM verwendet.

Beispiel 1. Beispiel f�r ein DBM Script

$dbm = dbmopen ("lastseen", "w");
if (dbmexists ($dbm, $userid)) {
    $last_seen = dbmfetch ($dbm, $userid);
} else {
    dbminsert ($dbm, $userid, time());
}
do_stuff();
dbmreplace ($dbm, $userid, time());
dbmclose ($dbm);

Inhaltsverzeichnis
dblist --  Liefert eine Beschreibung, welches DBM-Format verwendet wird.
dbmclose -- Schlie�en einer DBM Datenbank
dbmdelete --  L�scht einen Datensatz mit dem angegebenen Schl�ssel aus der DBM Datenbank.
dbmexists --  Pr�ft, ob ein Eintrag f�r den angegebenen Schl�ssel in der DBM Datenbank vorhanden ist.
dbmfetch --  Holt einen Datensatz mit dem angegebenen Schl�ssel aus der DBM Datenbank.
dbmfirstkey --  Gibt den ersten Schl�ssel der DBM Datenbank zur�ck.
dbminsert --  Schreibt einen Datensatz mit dem angegebenen Schl�ssel in die DBM Datenbank.
dbmnextkey --  Stellt den n�chsten Schl�ssel aus den Datenbank zur Verf�gung.
dbmopen -- �ffnen einer DBM Datenbank
dbmreplace --  Ersetzt einen Datensatz mit dem angegebenen Schl�ssel in der DBM Datenbank.


User Contributed Notes
DBM Datenbankfunktionen
add a note
mouse at bloodletting dot com
07-Jul-2001 01:23

Be advised that almost every function in this section either has no documentation or incorrectly documented regarding return codes.  If you want to use the DB methods safely you will have to reverse engineer the return codes and hope that they do not change values returned by the functions in the future to match the incorrect documentation.

In my experience, the return code of 0 or FALSE indicates no error.  This matches the behavior of GDBM which I am using as my underlying DB manager. This may not be true for people using another manager, or the builtin flatfile code.

jb at abzone dot cz
05-Oct-2001 05:27

NOTE: DBM and DBA are two different extensions which must
     be configured separately.

Hi *,
names of these functions was changed in PHP4.
Refer to
or .
Regards Jindra

foripepe at yahoo dot com
28-Feb-2002 05:16

First:
Make a firstdbm.db file.
Set attribute Read and Write.

--------------------------------------

<html><body>

<?
$dbm = dbmopen("firstdbm","w");
echo "<b>\$dbm: $dbm = dbmopen(\"firstdbm\", \"w\");</b>< br>";
echo "<i>".dblist()." = dblist();</i>< br>< br>";

$fruit = "apple";
$colour = "red";
if (dbmexists ($dbm, $fruit)) {
 $colour = dbmfetch ($dbm, $fruit);
 echo "\$colour: $colour = dbmfetch(\$dbm: $dbm, \$fruit: $fruit);< br>";
 $key = dbmreplace($dbm, $fruit, "green");
 echo "\$key: $key = dbmreplace(\$dbm: $dbm, \$fruit: $fruit, \"green\");< br>";
 $colour = dbmfetch ($dbm, $fruit);
 echo "\$colour: $colour = dbmfetch(\$dbm: $dbm, \$fruit: $fruit);< br>";
 if ( !dbmdelete($dbm, $fruit) ) {
   echo "False (OK) = dbmdelete(\$dbm: $dbm, \$fruit: $fruit);< br>";
 } else {
   echo "True (NOT OK) = dbmdelete(\$dbm: $dbm, \$fruit: $fruit);< br>";
 }
$colour = dbmfetch ($dbm, $fruit);
 echo "\$color: $colour = dbmfetch(\$dbm: $dbm, \$fruit: $fruit);< br><hr>";
$i = 1;
 $key = dbmfirstkey($dbm);
 while ($key) {
   if ($i==1) {
     echo "\$key: $key = dbmfirstkey(\$dbm: $dbm);< br>";
   } else {
     echo "\$key: $key = dbmnextkey(\$dbm: $dbm);< br>";
   }
   $i++;
  $colour = dbmfetch ($dbm, $key);
   echo "\$colour: $colour = dbmfetch(\$dbm: $dbm, \$key: $key);< br>";
   $key = dbmnextkey($dbm,$key);
 }
} else {
 dbminsert ($dbm, $fruit, $colour);
 echo "dbminsert(\$dbm: $dbm, \$fruit: $fruit, \$colour: $colour);< br>";
 dbminsert ($dbm, "pear", "yellow");
 echo "dbminsert(\$dbm: $dbm, \"pear\", \"yellow\");< br>";
dbminsert ($dbm, "apricot", "pink");
 echo "dbminsert(\$dbm: $dbm, \"apricot\", \"pink\");< br><hr>";
 $i = 1;
 $key = dbmfirstkey($dbm);
 while ($key) {
   if ($i==1) {
     echo "\$key: $key = dbmfirstkey(\$dbm: $dbm);< br>";
   } else {
     echo "\$key: $key = dbmnextkey(\$dbm: $dbm);< br>";
   }
   $i++;
   $colour = dbmfetch ($dbm, $key);
   echo "\$colour: $colour = dbmfetch(\$dbm: $dbm, \$key: $key);< br>";
   $key = dbmnextkey($dbm,$key);
}
}

echo "< br>";
if (dbmclose ($dbm)) {
echo "<b>True (OK) = dbmclose(\$dbm: $dbm);</b>< br>";
} else {
 echo "<b>False (NOT OK) = dbmclose(\$dbm: $dbm);</b>< br>";
};
?>

</body></html>

--------------------------------------
The first run output:

$dbm: 1 = dbmopen("firstdbm", "w");
ndbm support enabled = dblist();

dbminsert($dbm: 1, $fruit: apple, $colour: red);
dbminsert($dbm: 1, "pear", "yellow");
dbminsert($dbm: 1, "apricot", "pink");

$key: pear = dbmfirstkey($dbm: 1);
$colour: yellow = dbmfetch($dbm: 1, $key: pear);
$key: apricot = dbmnextkey($dbm: 1);
$colour: pink = dbmfetch($dbm: 1, $key: apricot);
$key: apple = dbmnextkey($dbm: 1);
$colour: red = dbmfetch($dbm: 1, $key: apple);

True (OK) = dbmclose($dbm: 1);

--------------------------------------
The second run output:

$dbm: 1 = dbmopen("firstdbm", "w");
ndbm support enabled = dblist();

$colour: red = dbmfetch($dbm: 1, $fruit: apple);
$key: 0 = dbmreplace($dbm: 1, $fruit: apple, "green");
$colour: green = dbmfetch($dbm: 1, $fruit: apple);
False (OK) = dbmdelete($dbm: 1, $fruit: apple);
$color: = dbmfetch($dbm: 1, $fruit: apple);

$key: pear = dbmfirstkey($dbm: 1);
$colour: yellow = dbmfetch($dbm: 1, $key: pear);
$key: apricot = dbmnextkey($dbm: 1);
$colour: pink = dbmfetch($dbm: 1, $key: apricot);

True (OK) = dbmclose($dbm: 1);

add a note

<dbase_replace_recorddblist>
 Last updated: Sat, 19 Apr 2003
show source | credits | mirror sites 
Copyright © 2001-2003 The PHP Group
All rights reserved.
This mirror generously provided by: /
Last updated: Mon May 12 21:12:21 2003 CEST