rfc:pdov1
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
rfc:pdov1 [2008/05/06 22:17] – some suggestions by ulf lsmith | rfc:pdov1 [2017/09/22 13:28] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 3: | Line 3: | ||
* Date: 2008-03-06 | * Date: 2008-03-06 | ||
* Author: Lukas Smith < | * Author: Lukas Smith < | ||
- | * Status: | + | * Status: |
This RFC aims to collect a set of ideas to improve PDO version 1. These ideas will hopefully end up in a set of concret feature requests and patches. | This RFC aims to collect a set of ideas to improve PDO version 1. These ideas will hopefully end up in a set of concret feature requests and patches. | ||
Line 18: | Line 18: | ||
A lot in PDO can be fixed without a new major version. | A lot in PDO can be fixed without a new major version. | ||
- | |||
===== Proposal and Patch ===== | ===== Proposal and Patch ===== | ||
- | * Fix differences in behavior for data fetches (possibly add a compatibility mode in order to maintain BC) | + | |
- | * Add a common syntax | + | * Add a common syntax to specify the DSN along the lines of the PEAR DSN format |
+ | * Add ability to generate a properly quoted comma separated list to be embedded in a query inside an IN() clause (see [[http:// | ||
+ | * Higher level emulation features | ||
+ | | ||
+ | * Add ability | ||
+ | * Add limited sub select emulation (see [[http:// | ||
+ | * A class for administrative functionality which can come in handy for projects like phpMyAdmin. (possibly partially in userland) | ||
+ | * Nested transaction emulation via SAVEPOINTs | ||
+ | * Emulate scrollable cursors via buffered result sets | ||
* Prepared statements | * Prepared statements | ||
* Fix differences in when bind/ | * Fix differences in when bind/ | ||
* Add ability to bind short binary values | * Add ability to bind short binary values | ||
* Improve the prepared statement emulation parser to better deal with quoted strings that contain things that look like a placeholder | * Improve the prepared statement emulation parser to better deal with quoted strings that contain things that look like a placeholder | ||
+ | * Make it possible to disable parsing and rewriting of placeholders and require the use of the given native syntax (:name, $name, ? etc.) | ||
* Fix the problems with ODBC prepared statements when executing procedures on all platforms. | * Fix the problems with ODBC prepared statements when executing procedures on all platforms. | ||
* Add support for PDO:: | * Add support for PDO:: | ||
* Add support for datatypes like float and datetime/ | * Add support for datatypes like float and datetime/ | ||
* Do not force the use of prepared statements internally for simple queries without any parameters | * Do not force the use of prepared statements internally for simple queries without any parameters | ||
- | | + | |
* Improve documentation | * Improve documentation | ||
- | * Add ability to manage connection session aspects like charset/ | ||
- | * Add limited sub select emulation (see [[http:// | ||
* Add support of multiple resultsets for mssql and odbc on all platforms. | * Add support of multiple resultsets for mssql and odbc on all platforms. | ||
- | * Add ability to retrieve the parameters set in the constructor (like DSN etc.), determine the state of the connection | + | * Add ability to retrieve the parameters set in the constructor (like DSN etc.) |
+ | * Add ability to determine the state of the connection/ | ||
* Make sure PDO classes implement interfaces so that frameworks can use it as a generic data access interface and implement native driver versions of it if needed (esp. PDOStatement). | * Make sure PDO classes implement interfaces so that frameworks can use it as a generic data access interface and implement native driver versions of it if needed (esp. PDOStatement). | ||
* OCI8 has some persistent connection tuning parameters like timeout, max_connections, | * OCI8 has some persistent connection tuning parameters like timeout, max_connections, | ||
Line 43: | Line 50: | ||
* Making quoting function aware of encoding in PDO (add quoting for identifier & value) | * Making quoting function aware of encoding in PDO (add quoting for identifier & value) | ||
* Improved error handling and debugging | * Improved error handling and debugging | ||
- | * Add some better debugging hooks (like a way to get the last submitted statement, this is important especially when PDO does some rewriting like with prepared statements) | + | * Add some better debugging hooks (like a [[bugid@44319|way to get the last submitted statement]], this is important especially when PDO does some rewriting like with prepared statements) |
* For consistency it would be good to clear errors on every call and provide facility to expose multiple notices/ | * For consistency it would be good to clear errors on every call and provide facility to expose multiple notices/ | ||
* Throw an exception if a fetch method is call on a statement that has not been executed at least once | * Throw an exception if a fetch method is call on a statement that has not been executed at least once | ||
* Expand support for SQLSTATE error codes to ensure that all drivers return more or less compatible error codes | * Expand support for SQLSTATE error codes to ensure that all drivers return more or less compatible error codes | ||
- | * A class for administrative functionality which can come in handy for projects like phpMyAdmin. (possibly partially in userland) | ||
* Full blown Metadata APIs ala JDBC (important for higher-level DB layers). (possibly partially in userland) | * Full blown Metadata APIs ala JDBC (important for higher-level DB layers). (possibly partially in userland) | ||
* Test suite which DB driver authors can use for compliance testing. | * Test suite which DB driver authors can use for compliance testing. | ||
Line 57: | Line 63: | ||
==== More about PDO ==== | ==== More about PDO ==== | ||
- | * http:// | + | * http:// |
+ | * http:// | ||
+ | * http:// | ||
==== References ==== | ==== References ==== |
rfc/pdov1.1210112271.txt.gz · Last modified: 2017/09/22 13:28 (external edit)