mirror of
https://github.com/php/php-src.git
synced 2024-11-28 12:26:37 +08:00
93 lines
2.3 KiB
Plaintext
Executable File
93 lines
2.3 KiB
Plaintext
Executable File
$Id$
|
|
|
|
Roadmap for PDO
|
|
|
|
Core, version 1.1:
|
|
==================
|
|
|
|
- Add PDO::queryParams(), similar to PDO::query(), but accepts
|
|
an array of parameters as the second argument, pushing the remaining
|
|
args (which are args to setFetchMode()) up by one.
|
|
|
|
- Separate the handle factory call into two phases:
|
|
- handle creation
|
|
- connecting
|
|
|
|
This would then allow PDO to call setAttribute()
|
|
for each driver option specified in the constructor.
|
|
Right now, the handling of driver attributes is a bit sloppy.
|
|
|
|
- Add:
|
|
pdo.max_persistent
|
|
pdo.persistent_timeout
|
|
pdo.ping_interval
|
|
|
|
with the same meanings as those options from oci8.
|
|
|
|
- BLOB/CLOB.
|
|
Investigate the various APIs to determine if we can
|
|
transparently map BLOBs and CLOBs as PDO_PARAM_LOB.
|
|
If the API needs hints from the client side, we need
|
|
to introduce a PDO_PARAM_CLOB to differentiate between
|
|
binary and character data.
|
|
|
|
- Character set selection.
|
|
Generalize/standardize this.
|
|
|
|
- meta data.
|
|
Formalize getColumnMeta().
|
|
Look at retrieving lists of tables and other objects in the db.
|
|
|
|
- tracing/logging/debugging
|
|
Add ini options:
|
|
|
|
pdo.trace_file
|
|
pdo.enable_tracing
|
|
|
|
And corresponding attributes, ATTR_TRACE_FILE, ATTR_TRACING_ENABLE,
|
|
settable at dbh and stmt levels independently. If set at the dbh level,
|
|
the stmt will inherit its value. If not set explicitly in code, the
|
|
defaults for the dbh will come from the INI settings.
|
|
|
|
ATTR_TRACE_FILE will accept a string or a stream.
|
|
|
|
The INI options are useful for administrative tracing/debugging.
|
|
Trace mode will output very verbose info.
|
|
|
|
|
|
General DB API Roundup:
|
|
=========
|
|
Consider how the following can be implemented in PDO:
|
|
|
|
mysqli_change_user(); alters auth credentials on a live connection
|
|
mysqli_info(); info about rows affected by last query
|
|
mysqli_master_query(); force query to run on master
|
|
mysqli_ping(); ping / reconnect
|
|
mysqli_stat(); one line summary of server status
|
|
|
|
oci_password_change()
|
|
|
|
Also consider master/slave and/or failover server configuration.
|
|
|
|
|
|
Postgres:
|
|
=========
|
|
|
|
- Real large object support.
|
|
- Someone with more pgsql experience can suggest more features
|
|
|
|
Oracle:
|
|
=======
|
|
|
|
- Support for array types and collections.
|
|
|
|
PDO Session module:
|
|
===================
|
|
|
|
- Is it worth writing in C?
|
|
Probably not.
|
|
|
|
|
|
vim:se et ts=2 sw=2 tw=78:
|
|
|