File: dbm.xml

package info (click to toggle)
phpdoc 20020310-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 35,272 kB
  • ctags: 354
  • sloc: xml: 799,767; php: 1,395; cpp: 500; makefile: 200; sh: 140; awk: 51
file content (376 lines) | stat: -rw-r--r-- 12,039 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
<?xml version="1.0" encoding="iso-8859-1"?>
 <reference id="ref.dbm">
  <title>DBM Datenbankfunktionen</title>
  <titleabbrev>DBM</titleabbrev>

  <partintro>
   <simpara>
    Diese Funktionen erlauben Ihnen den Zugriff auf Datenstze die
    im DBM-Format vorliegen.

    Im Gegensatz zu den relationalen Datenbanken (mySQL, etc.)
    werden die Datenstze in Form von ISAM-Stzen gespeichert.
    DBM Datenbanken werden von verschiedenen Systemfunktionen als
    interne Arbeitsbibliothek bentzt. Diese Datenbank-Art wird
    auch von der Berkeley DB und GDBM verwendet.
   </simpara>
   <para>
    <example>
     <title>Beispiel fr ein DBM Script</title>
     <programlisting role="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);
     </programlisting>
    </example>
   </para>
  </partintro>

  <refentry id="function.dbmopen">
   <refnamediv>
    <refname>dbmopen</refname>
    <refpurpose>ffnen einer DBM Datenbank</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>int</type><methodname>dbmopen</methodname>
      <methodparam><type>string</type><parameter>filename</parameter></methodparam>
      <methodparam><type>string</type><parameter>flags</parameter></methodparam>
     </methodsynopsis>
    <para>
     Das erste Argument ist der vollqualifizierte Dateiname der DBM Datenbank,
     die geffnet werden soll. Das zweite Argument ist der Modus,
     mit dem die DBM Datenbank geffnet werden soll.
     Es gibt 4 Mglichkeiten, eine DBM Datenbank zu ffnen:
     <variablelist>
      <varlistentry>
       <term>"r" (read-only)</term>
       <listitem><para>
        Eine existierende Datenbank soll nur lesend
        geffnet werden.</para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>"n" (new)</term>
       <listitem><para>
        Eine neue Datenbank soll angelegt werden.
        Diese wird automatisch als read-write geffnet.
        Eine existierende Datenbank wird inhaltlich
        gelscht.</para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>"c" (create)</term>
       <listitem><para>
        Eine neue Datenbank soll angelegt werden.
        Diese wird automatisch als read-write geffnet.
        Im Gegensatz zu "n" wird eine bereits existierende
        Datenbank inhaltlich nicht gelscht, sondern nur
        "read-writeable" geffnet.</para>
       </listitem>
      </varlistentry>

      <varlistentry>
       <term>"w" (read-write)</term>
       <listitem><para>
        Eine existierende Datenbank soll lesend und
        schreibend geffnet werden.</para>
       </listitem>
      </varlistentry>
     </variablelist>
    </para>
    <para>
     Wenn die angegebene DBM Datenbank geffnet werden konnte,
     wird ein Identifier zurckgegeben. Dieser Identifier muss
     fr alle weiteren Aufrufe, die an die DBM Datenbank gettigt
     werden, mitgegeben werden.
     Wenn das ffenen der DBM Datenbank fehlgeschlagen ist,
     wird das Ergebnis &false; zurckgegeben.
    </para>
    <para>
     Wenn die NDBM Untersttzung aktiviert wird, werden jeweils
     zwei Dateien <filename>filename.dir</filename> und
     <filename>filename.pag</filename> erzeugt. GDBM, ebenso wie
     der interne "Flat-File" Mechanismus und die Berkeley DB,
     verwenden nur eine Datei (und diese heisst bei der Berkeley
     DB <filename>filename.db</filename>).

     Bitte beachten Sie, dass PHP seine Dateisperren zustzlich
     zu den vorhanden DBM-Bibliothekseigenen Routinen verwendet.
     PHP lscht auch die <filename>.lck</filename> Dateien nicht
     wieder. Es verwendet diese Datei nur als zustzliches
     Mittel fr Dateilocking. Wenn Sie mehr ber
     DBM-Datenbanken wissen wollen, sehen Sie in den
     UNIX-Manualseiten nach, oder schauen bei <ulink
     url="&url.gdbm;">GNU's GDBM</ulink> nach.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmclose">
   <refnamediv>
    <refname>dbmclose</refname>
    <refpurpose>Schlieen einer DBM Datenbank</refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbmclose</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     Gibt Zugiffssperren auf Datenstze frei und schliet die angegebene
     DBM Datenbank.
    </para>
    <para>
     Liefert &true; bei Erfolg bzw. &false; bei Fehler.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmexists">
   <refnamediv>
    <refname>dbmexists</refname>
    <refpurpose>
     Prft, ob ein Eintrag fr den angegebenen Schlssel
     in der DBM Datenbank vorhanden ist.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbmexists</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
     </methodsynopsis>
    <para>
     Wenn in der DBM Datenbank ein Eintrag mit dem angegebenen Schlssel
     <parameter>key</parameter> vorhanden ist, wird als Ergebnis
     &true; zurckgegeben.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmfetch">
   <refnamediv>
    <refname>dbmfetch</refname>
    <refpurpose>
     Holt einen Datensatz mit dem angegebenen Schlssel
     aus der DBM Datenbank.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>string</type><methodname>dbmfetch</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
     </methodsynopsis>
    <para>
     Liefert den Datensatz, der dem <parameter>key</parameter> in der
     DBM Datenbank entspricht.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbminsert">
   <refnamediv>
    <refname>dbminsert</refname>
    <refpurpose>
     Schreibt einen Datensatz mit dem angegebenen Schlssel
     in die DBM Datenbank.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>int</type><methodname>dbminsert</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
      <methodparam><type>string</type><parameter>value</parameter></methodparam>
     </methodsynopsis>
    <para>
     Schreibt den Datensatz mit angegebenen Schlssel in die
     Datenbank.
    </para>
    <para>
     Ergebniswerte:
     <variablelist>
      <varlistentry>
       <term>-1</term>
       <listitem><simpara>nur Leseberechtigung.</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>0</term>
       <listitem><simpara>Aktion erfolgreich beendet.</simpara>
       </listitem>
      </varlistentry>
      <varlistentry>
       <term>1</term>
       <listitem><simpara>Ein Eintrag mit dem angegebenen Schlssel
        existiert bereits in der Datenbank.</simpara>
       </listitem>
      </varlistentry>
     </variablelist>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmreplace">
   <refnamediv>
    <refname>dbmreplace</refname>
    <refpurpose>
     Ersetzt einen Datensatz mit dem angegebenen Schlssel
     in der DBM Datenbank.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbmreplace</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
      <methodparam><type>string</type><parameter>value</parameter></methodparam>
     </methodsynopsis>
    <para>
     Schreibt einen Datensatz mit dem angegebenen Satzschlssel in
     die Datenbank bzw. ersetzt ihn.
    </para>
    <para>
     Wenn ein Eintrag mit den angegebenen Schlssel vorhanden ist,
     wird dieser berschrieben. Ansonsten wird ein Datensatz mit
     mit den Schlssel neu angelegt.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmdelete">
   <refnamediv>
    <refname>dbmdelete</refname>
    <refpurpose>
     Lscht einen Datensatz mit dem angegebenen Schlssel
     aus der DBM Datenbank.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>bool</type><methodname>dbmdelete</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
     </methodsynopsis>
    <para>
     Lscht einen vorhanden Datensatz, der dem
     <parameter>key</parameter> entspricht, aus der Datenbank.
    </para>
    <para>
     Wenn kein Datensatz zum Lschen gefunden wurde, wird der
     Returncode &false; zurckgegeben.
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dbmfirstkey">
   <refnamediv>
    <refname>dbmfirstkey</refname>
    <refpurpose>
     Gibt den ersten Schlssel der DBM Datenbank zurck.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>string</type><methodname>dbmfirstkey</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
     </methodsynopsis>
    <para>
     Gibt den ersten Schlssel der DBM Datenbank zurck.
    </para>
    <note><para>Achtung: Es gibt keine Garantie fr eine bestimmte Reihenfolge
              innerhalb der Datenbank, da die Datenbank auf einen
              Hash-Algorithmus aufgebaut ist.
    </para></note>
   </refsect1>
  </refentry>

  <refentry id="function.dbmnextkey">
   <refnamediv>
    <refname>dbmnextkey</refname>
    <refpurpose>
     Stellt den nchsten Schlssel aus den Datenbank zur Verfgung.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>string</type><methodname>dbmnextkey</methodname>
      <methodparam><type>int</type><parameter>dbm_identifier</parameter></methodparam>
      <methodparam><type>string</type><parameter>key</parameter></methodparam>
     </methodsynopsis>
    <para>
     Gibt den auf <parameter>key</parameter> folgenden Schlssel
     an den Aufrufer zurck. Um alle Schlssel einer DBM Datenbank
     auszulesen, wird <function>dbmfirstkey</function>, gefolgt von
     wiederholten Aufrufen von <function>dbmnextkey</function>
     verwendet, wie im folgenden Script:
     <example>
      <title>Ausgeben aller Schlssel mit Datenstzen einer DBM Datenbank</title>
      <programlisting role="php">
$key = dbmfirstkey ($dbm_id);
while ($key) {
    echo "$key = " . dbmfetch ($dbm_id, $key) . "\n";
    $key = dbmnextkey ($dbm_id, $key);
}
     </programlisting>
    </example>
    </para>
   </refsect1>
  </refentry>

  <refentry id="function.dblist">
   <refnamediv>
    <refname>dblist</refname>
    <refpurpose>
     Liefert eine Beschreibung, welches DBM-Format
     verwendet wird.
    </refpurpose>
   </refnamediv>
   <refsect1>
    <title>Beschreibung</title>
     <methodsynopsis>
      <type>string</type><methodname>dblist</methodname>
      <void/>
     </methodsynopsis>
   </refsect1>
  </refentry>

 </reference>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"../../manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
-->