|
|
XX. Funzioni DBM
Questa funzioni consentono lo storage di records memorizzati
in un dbm-style database. Questo tipo di database (supportato da Berkeley DB,
GDBM, e qualche libreria di sistema, cos� come una built-in flatfile library)
memorizza coppie key/value (al contrario dei full-blown records supportati dai
database relazionali).
Esempio 1. Esempio DBM $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); |
|
- Sommario
- dblist --
Descrive la libreria DBM-compatibile in uso.
- dbmclose -- Chiude un database dbm
- dbmdelete --
Cancella il valore per una chiave da un database DBM
- dbmexists --
Dice se esiste un valore per una chiave in un database DBM
- dbmfetch --
Estrae un valore per una chiave da un database DBM
- dbmfirstkey --
Recupera la prima chiave da un database DBM
- dbminsert --
Inserisce un valore per una chiave in un database DBM
- dbmnextkey --
Recupera la chiave successiva da un database DBM
- dbmopen -- Apre un database DBM
- dbmreplace --
Sostituisce il valore per una chiave in un database DBM
User Contributed Notes Funzioni DBM |
|
[email protected]
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.
|
|
[email protected]
05-Oct-2001 05:27 |
|
Hi *,
names of these functions was changed in PHP4.
Refer to
or
.
Regards Jindra
|
|
[email protected]
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);
|
|
|
| |