dba_handler.inc 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. <?php
  2. echo "database handler: $handler\n";
  3. do {
  4. if (($db_file = dba_open($db_filename, 'n'.$lock_flag, $handler))!==FALSE) {
  5. dba_insert("key1", "Content String 1", $db_file);
  6. dba_insert("key2", "Content String 2", $db_file);
  7. dba_insert("key3", "Third Content String", $db_file);
  8. dba_insert("key4", "Another Content String", $db_file);
  9. dba_insert("key5", "The last content string", $db_file);
  10. if ($handler != 'cdb') {
  11. dba_delete("key3", $db_file);
  12. dba_delete("key1", $db_file);
  13. } else {
  14. dba_close($db_file);
  15. if (($db_file = dba_open($db_filename, 'r'.$lock_flag, $handler))===FALSE) {
  16. echo "Error reopening database\n";
  17. }
  18. }
  19. $a = dba_firstkey($db_file);
  20. $i=0;
  21. while($a) {
  22. $a = dba_nextkey($db_file);
  23. $i++;
  24. }
  25. echo $i;
  26. for ($i=1; $i<6; $i++) {
  27. echo dba_exists("key$i", $db_file) ? "Y" : "N";
  28. }
  29. echo "\n";
  30. echo dba_fetch("key2", $db_file)."\n";
  31. if ($handler != 'cdb') {
  32. dba_replace("key2", "Content 2 replaced", $db_file);
  33. echo dba_fetch("key2", $db_file)."\n";
  34. }
  35. dba_close($db_file);
  36. } else {
  37. echo "Error creating database\n";
  38. }
  39. if ($handler != 'cdb') {
  40. $db_writer = dba_open($db_filename, 'c'.$lock_flag, $handler);
  41. if (($dba_reader = @dba_open($db_filename, 'r'.$lock_flag.'t', $handler))===false) {
  42. echo "Read during write: not allowed\n";
  43. } else {
  44. echo "Read during write: allowed\n";
  45. }
  46. if ($db_writer!==FALSE) {
  47. if (dba_insert("key number 6", "The 6th value", $db_writer)) {
  48. echo '"key number 6" written' . "\n";
  49. } else {
  50. echo 'Failed to write "key number 6"' . "\n";
  51. }
  52. if (dba_insert("key number 6", "The 6th value inserted again would be an error", $db_writer)) {
  53. echo '"key number 6" written 2nd time' . "\n";
  54. } else {
  55. echo 'Failed to write "key number 6" 2nd time' . "\n";
  56. }
  57. dba_replace("key2", "Content 2 replaced 2nd time", $db_writer);
  58. dba_delete("key4", $db_writer);
  59. echo dba_fetch("key2", $db_writer)."\n";
  60. echo dba_fetch("key number 6", $db_writer)."\n";
  61. dba_close($db_writer); // when the writer is open at least db3 would fail because of buffered io.
  62. } else {
  63. die("Error reopening database\n");
  64. }
  65. }
  66. if (($db_file = dba_open($db_filename, 'r'.$lock_flag, $handler))!==FALSE) {
  67. $key = dba_firstkey($db_file);
  68. $res = array();
  69. while($key) {
  70. $res[$key] = dba_fetch($key, $db_file);
  71. $key = dba_nextkey($db_file);
  72. }
  73. ksort($res);
  74. var_dump($res);
  75. dba_close($db_file);
  76. } else {
  77. echo "Error reading database\n";
  78. }
  79. if (!empty($dba_reader)) {
  80. dba_close($dba_reader);
  81. }
  82. if (($db_file = dba_popen($db_filename, 'r'.($lock_flag==''?'':'-'), $handler))!==FALSE) {
  83. if ($handler == 'dbm' || $handler == "tcadb") {
  84. dba_close($db_file);
  85. }
  86. }
  87. if ($lock_flag == '') {
  88. break;
  89. } else {
  90. echo "--NO-LOCK--\n";
  91. $lock_flag = '';
  92. }
  93. } while(1);
  94. ?>