[PHP-users 11048] Re: db3について

kentarou_ishimaru php-users@php.gr.jp
Wed, 23 Oct 2002 12:19:14 +0900


kehiです。

>$DB = dba_open($datafile, "n", "db3") or die("xxx");
>dba_close($DB);
>
>エラーメッセージ
>Warning: no such handler: db3 in /xxx/xxx/test.php on line 27

エラーの原因まではわかりませんが、
ファイルハンドルの値は問題ないでしょうか?

>また、これはPHPがインストールしていれば
>必ず使えるというわけではないのでしょうか?

PHPと一緒にDBMが自動でインストールされることはありません。
今回の場合ですとdb3というものがそのマシンにインストールされていれば
使えるというだけの話です。


>もう一件お願いします。
>仮に使えるとした場合、dbm ndbm gdbm db2 db3 cdb
>があると書籍に書いてあるのですが
>みなさんでしたらどれがおすすめなのでしょうか?
>
>キーは 30バイト位、内容は多くても500バイト位
>件数は5000〜10000件位です。
>レンタルサーバなのでsqlなどのRDBMは使えない環境です

全て試してないですが、
1件あたりのデータ量がその程度であれば、
どれでもいいのではないでしょうか?
私のつたない経験的にはFreeBSD系のときにndbmで
Linuxの時にgdbmがデフォルトで使えてました。

>また、ある書籍には下記のように書いてあるのですが
>
>$DB = dbmopen($datafile, "n") or die("xxx");
>dbmclose($DB);
>
>これは
>
>$DB = dba_open($datafile, "n", "dbm") or die("xxx");
>dba_close($DB);
>
>とは違うのでしょうか?

詳しくは抽象化レイヤー云々とマニュアルにありますが、
DBAはいろんな形式のDBMを引数で指定できるようになっています。

phpinfo()をみればDBAが使用可能であればその項目があります。
DBMの場合は何のDBMの種類かも表示されます。
dbmopen等の関数を使いたい場合はPHP4ではコンフィグにて
with-dbとする必要があります。

参考になれば幸いです。
#誤っている箇所があればつっこみをお願いします。

☆_/_/_/_/石丸 健太郎(kehi@scg.fuji-ric.co.jp)_/_/_/_/★
    みずほフィナンシャルグループ 富士総合研究所 情報企画室
    My WebSite is Station kehi where's
    http://kehi.yi-web.ne.jp/     check it out !!  (^^)!
  投げれば答えが返ってくる。あなたのネットのブーメラン 〜e-リサ〜
  http://eresearch.fuji-ric.ne.jp/
★_/_/_/_/_/_/_/_/_/_/_/__/_//_/_/_/_/_/_/_/_/☆