Wez Furlong <[EMAIL PROTECTED]> writes:

> There is no official way to do this kind of thing between arbitrary
> extensions.  When extensions that are written to share this information,
> they typically export an XXX_API function that you can link against to fetch
> the data.
>
> What you've done works, so that's fine, although there is a risk of
> crashing if someone passes the wrong type of resource in.  If you're
> thinking of distributing your extension, we could add a more official
> API for you to use, although that doesn't exist in older versions of
> the extension, etc. etc.

Thanks, Wez.  My extension will likely never be used other than with
locally-written code.  My biggest concern is making use of the incestual
knowledge of the private php_sqlite_db structure and that the database handle
is the first field in it.  That structure may change in the future.

My use of this is as a function used in a query -- sqlite_create_function() is
used to allow a call to a php function which passes the database handle to the
extension function.  Prior to today, my extension had its own private database
handle that it initialized on the MINIT function, but I was causing a deadlock
by calling this function from within a query in PHP which called the extension
which tried to issue additional queries using my private database handle in
the extension.  Passing in the php-derived handle is the only way of
eliminating that deadlock.

I wonder whether I'm really alone in wanting access to a database handle for
extensions.  It would seem appropriate to provide access to the C-level
database handle given a PHP resources.  That would eliminate the need to base
an extenion on insestual knowledge of the database-specific extension.

Thanks again,

Derrell

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to