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/04/28 20:53] – 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) | + | * Convenience features |
- | * Add a common syntax to specify the DSN along the lines of the PEAR DSN format | + | * Add a common syntax to specify the DSN along the lines of the PEAR DSN format |
- | * 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 ability to generate a properly quoted comma separated list to be embedded in a query inside an IN() clause (see [[http:// |
- | * Fix differences in when bind/ | + | * Higher level emulation features |
- | * Add ability to bind short binary values | + | * Fix differences |
- | | + | * Add ability to manage connection session aspects like charset/ |
- | * Better documentation and testing | + | * Add limited sub select emulation (see [[http:// |
- | * Add support for CLOB fields | + | * A class for administrative functionality which can come in handy for projects like phpMyAdmin. (possibly partially in userland) |
- | * Add ability to manage connection session aspects like charset/ | + | * Nested transaction emulation via SAVEPOINTs |
- | * Add limited sub select emulation (see [[http:// | + | * Emulate scrollable cursors via buffered result sets |
- | * Improve the prepared statement emulation parser to better deal with quoted strings that contain things that look like a placeholder | + | |
+ | * Fix differences in when bind/ | ||
+ | * Add ability to bind short binary values | ||
+ | | ||
+ | * 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. | ||
+ | * Add support for PDO:: | ||
+ | * Add support for datatypes like float and datetime/ | ||
+ | * Do not force the use of prepared statements internally for simple queries without any parameters | ||
+ | * Optionally only use native prepared statement for SQL injection protection, but leverage the ability of some RDBMS to pass the [http:// | ||
+ | * Improve documentation | ||
* 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.) |
- | * Add support for datatypes like float and datetime/ | + | * 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). |
- | * Throw an exception if a fetch method is call on a statement that has not been executed at least once | + | |
+ | * Improved Quoting | ||
+ | * Consider having an attribute that sets quoting style + maybe even allow for a callback for quoting. | ||
+ | * Making quoting function aware of encoding in PDO (add quoting for identifier & value) | ||
+ | * Improved error handling and debugging | ||
+ | * Add some better debugging hooks (like a [[bugid@44319|way to get the last submitted statement]], | ||
+ | * For consistency it would be good to clear errors on every call and provide facility to expose multiple notices/ | ||
+ | | ||
+ | * Expand support for SQLSTATE error codes to ensure that all drivers return more or less compatible error codes | ||
+ | * 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. | ||
==== Rejected Features ==== | ==== Rejected Features ==== | ||
Line 44: | Line 63: | ||
==== More about PDO ==== | ==== More about PDO ==== | ||
- | * http:// | + | * http:// |
+ | * http:// | ||
+ | * http:// | ||
==== References ==== | ==== References ==== |
rfc/pdov1.1209416022.txt.gz · Last modified: 2017/09/22 13:28 (external edit)