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: Sun, 25 Nov 2007

view this page in

DBM Functions [deprecated]

Introduction

These functions allow you to store records stored in a dbm-style database. This type of database (supported by the Berkeley DB, » GDBM, and some system libraries, as well as a built-in flatfile library) stores key/value pairs (as opposed to the full-blown records supported by relational databases).

Note: DBM support is deprecated and you are encouraged to use the Database (dbm-style) abstraction layer functions instead.

Note: This extension has been removed from PHP and is no longer available as of PHP 5.0.0.

Requirements

To use this functions you have to compile PHP with support for an underlying database. See the list of supported Databases.

Installation

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.

Runtime Configuration

This extension has no configuration directives defined in php.ini.

Resource Types

The function dbmopen() returns an database identifier which is used by the other dbm-functions.

Predefined Constants

This extension has no constants defined.

Examples

Example#1 DBM example

<?php

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

?>

Table of Contents

  • dblist — Describes the DBM-compatible library being used
  • dbmclose — Closes a dbm database
  • dbmdelete — Deletes the value for a key from a DBM database
  • dbmexists — Tells if a value exists for a key in a DBM database
  • dbmfetch — Fetches a value for a key from a DBM database
  • dbmfirstkey — Retrieves the first key from a DBM database
  • dbminsert — Inserts a value for a key in a DBM database
  • dbmnextkey — Description
  • dbmopen — Opens a DBM database
  • dbmreplace — Replaces the value for a key in a DBM database


dblist> <dbase_replace_record
Last updated: Sun, 25 Nov 2007
 
add a note add a note User Contributed Notes
DBM
foripepe at yahoo dot com
28-Feb-2002 01: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 01: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 09: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: Sun, 25 Nov 2007
 
 
show source | credits | sitemap | contact | advertising | mirror sites