On 8/19/07, Ryan Schmidt <ryandesign@macports.org> wrote:
On Aug 19, 2007, at 15:58, AstroDrabb wrote:

> I just setup apache2, mysql5 and php5.  However, I get an error when I
> make a call
> to dba_open().
>
> Fatal error: Call to undefined function dba_open() in /...
>
> Looking at the output of a call to phpinfo() I see this compile
> option:
> --enable-dba
>
> I looked around for any loadable modules, but did not find any
> modules.  Is this a bug in the php5 build or am I missing something?

I'm one of the maintainers of php5. I agree -- dba_open() is
undefined. ./configure output is interesting...

checking whether to enable DBA... yes
checking for QDBM support... no
checking for GDBM support... no
checking for NDBM support... no
checking for Berkeley DB4 support... no
checking for Berkeley DB3 support... no
checking for Berkeley DB2 support... no
checking for DB1 support... no
checking for DBM support... no
checking for CDB support... no
checking for INI File support... no
checking for FlatFile support... no
checking whether to enable DBA interface... no

So it's enabled... but it isn't. Apparently.

What type of database are you trying to access with dba? It looks
like each possibility must be enabled separately. I'm not sure if
each of these implies bringing in additional dependencies. If it
does, I'm inclined to move dba support to a variant. Comments /
suggestions welcome.



A variant would probably be best since you can use different dba handlers like gdbm, qdbm, db4, etc

Here is the link to --enable-dba
http://us3.php.net/dba

Or you could use:
--enable-dba=shared

Then you could have a variant for each dba handler with:

--with-db4[=DIR]
--with-gdbm[=DIR]
--with-qdbm[=DIR] /* Note:  qdbm conflicts with dbm and gdbm */

Then a user just has to enable an extension for db4, gdbm or qdbm, etc.

Thanks for the help,

P.S.  Please CC: me if you update the port.

Jim