PHP dba 基本操作 程式範例

PHP 的 DBA(Database (dbm-style) Abstraction Layer) 可以接 Oracle Berkeley DB.

這邊有相容的 DB Layer 列表: PHP: Requirements - Manual

註: 此篇文章的範例使用 db4, 確定 PHP 5.3.3 以上可以正常執行, 不能執行的話, 可以換成 dbm 先測試看看. 🙂

Debian、Ubuntu Linux 安裝管理套件

  • apt-get install db-util # 就可以有 db_dump、db_load、db_hotbackup、db_stat 等可以使用

PHP 的 DBA 基本操作 程式範例

下述的範例, dba_open() 可以於最上面打開, 於最下面 dba_close() 即可.

此範例內容於每個區塊都 open / close, 主要是要方便 copy 用, 只要拷貝此一區塊的程式, 就可以直接套用.

  1. <?php
  2. define('DB_FILE', '/tmp/dbadata.db'); // 此檔案即為 DB 檔, 請隨意命名
  3. if (!file_exists(DB_FILE)) {
  4.     $dbh   = dba_open(DB_FILE, 'n', 'db4');
  5.     dba_close($dbh);
  6. }
  7. $result = array('abc', 'def');
  8. // 新增
  9. $dbh = dba_open(DB_FILE, 'c', 'db4');
  10. dba_replace('key1', serialize($result), $dbh);
  11. dba_replace('key2', serialize($result), $dbh);
  12. dba_close($dbh);
  13. // 抓取、確認 (修改模式也可以讀取 "c")
  14. $dbh = dba_open(DB_FILE, 'c', 'db4');
  15. $data = dba_fetch('key1', $dbh);
  16. echo "key1\n";
  17. $data = dba_fetch('key2', $dbh);
  18. echo "key2\n";
  19. dba_close($dbh);
  20. // 修改
  21. $dbh = dba_open(DB_FILE, 'c', 'db4');
  22. dba_replace('key1', 'abc', $dbh);
  23. dba_close($dbh);
  24. // 抓取、確認 (讀取 "r")
  25. $dbh = dba_open(DB_FILE, 'r', 'db4');
  26. $data = dba_fetch('key1', $dbh);
  27. echo "key1\n";
  28. print_r($data);
  29. dba_close($dbh);
  30. // 刪除
  31. $dbh = dba_open(DB_FILE, 'c', 'db4');
  32. dba_delete('key2', $dbh);
  33. dba_close($dbh);
  34. // Dump all
  35. $dbh = dba_open(DB_FILE, 'r', 'db4');
  36. $key = dba_firstkey($dbh);
  37. $i = 0;
  38. $list = array();
  39. while ($key != NULL) {
  40.     $list[$i][$key] = dba_fetch($key, $dbh);
  41.     $key = dba_nextkey($dbh);
  42.     $i++;
  43. }
  44. print_r($list);
  45. ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料