[DBAL-278] add support for lastInsertId method on OCI8 Driver Created: 16/May/12 Updated: 22/May/12 Resolved: 22/May/12 |
|
| Status: | Resolved |
| Project: | Doctrine DBAL |
| Component/s: | Drivers |
| Affects Version/s: | 2.2.2 |
| Fix Version/s: | 2.3 |
| Type: | Improvement | Priority: | Major |
| Reporter: | Franek | Assignee: | Benjamin Eberlei |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Environment: |
oci8 |
||
| Description |
|
The method lastInsertId() is not defined for OCI8 Driver in Doctrine\DBAL\Driver\OCI8\OCI8Connection.php : OCI8Connection.php public function lastInsertId($name = null) { //TODO: throw exception or support sequences? } I propose this method to handle lastInsertId for sequence : OCI8Connection.php public function lastInsertId($name = null) { // For sequence if (is_string($name)) { // We can check eventually check the presence of the sequence in the table // USER_SEQUENCES $sql = 'SELECT ' . $name . '.CURRVAL FROM DUAL'; // will throw an exception if this sequence does not exist $stmt = $this->query($sql); $result = $stmt->fetch(\PDO::FETCH_ASSOC); if ($result !== false && isset($result['CURRVAL'])) { return (int) $result['CURRVAL']; } } // OCI8 driver does not provide support of lastInsertId return null; } Thanks, |