PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

dblist> <dbase_replace_record
Last updated: Sat, 24 Mar 2007

view this page in

XXVI. DBM Funkce [zastaralé]

Úvod

Tyto funkce vám umožňují ukládat záznamy do databází typu dbm. Tento typ databází (podporovaný Berkeley DB, GDBM, některými systémovými knihovnami, a také vestavěnou flatfile knihovnou) ukládá klíč/hodnota páry (oproti plnohodnotným relačním databázím).

Poznámka: Podpora dbm je nicméně zavržena a doporučujeme vám použít místo toho funkce databázové abstrakční vrstvy (dbm-styl)

Požadavky

K použití tohoto rozšíření musíte PHP zkompilovat s podporou použité databáze. Viz seznam podporovaných databází.

Instalace

In order to use these functions, you must compile PHP with dbm support by using the --with-db option. In addition you must ensure support for an underlying database or you can use some system libraries.

Konfigurace běhu

Toto rozšíření nemá definováno žádné konfigurační direktivy.

Typy prostředků

Funkce dbmopen() vrací identifikátor databáze, který používají ostatní dbm-funkce.

Předdefinované konstanty

Toto rozšíření nemá definovány žádné konstanty.

Příklady

Příklad 361. DBM - příklad

<?php

$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);

?>

Obsah

dblist — Získat název používané DBM-kompatibilní knihovny
dbmclose — Zavřít dbm databázi
dbmdelete — Smazat v DMB databázi hodnotu spojenou s určitým klíčem
dbmexists — Zjistí, jestli pro zadaný klíč existuje v DBM databázi hodnota
dbmfetch — Získat z DBM databáze hodnotu spojenou s určitým klíčem
dbmfirstkey — Získat z DBM databáze první klíč
dbminsert — Vložit do DBM databáze hodnotu a klíč
dbmnextkey — Získat další klíč z DBM databáze
dbmopen — Otevřít DBM databázi
dbmreplace — Nahredit v DBM databázi hodnotu s určitým klíčem


dblist> <dbase_replace_record
Last updated: Sat, 24 Mar 2007
 
add a note add a note User Contributed Notes
DBM Funkce [zastaralé]
foripepe at yahoo dot com
28-Feb-2002 10: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);
jb at abzone dot cz
05-Oct-2001 10: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 http://www.faqts.com/knowledge_base/view.phtml/aid/1988
or http://www.zend.com/manual/ref.dba.php .
Regards Jindra
mouse at bloodletting dot com
06-Jul-2001 06: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.

dblist> <dbase_replace_record
Last updated: Sat, 24 Mar 2007
 
 
show source | credits | stats | sitemap | contact | advertising | mirror sites