Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

Loading…

DBAL-278 - Add lastInsertId() support for sequences (OCI8 Driver) #147

Closed
wants to merge 1 commit into from

3 participants

François D. Don't Add Me To Your Organization a.k.a The Travis Bot Benjamin Eberlei
François D.

Add lastInsertId() support for Sequence

Don't Add Me To Your Organization a.k.a The Travis Bot

This pull request passes (merged 70f3829 into f3effdb).

Benjamin Eberlei
Owner

Fixed in master df9bec4 - This is not really a bug, so it will only appear in 2.3

Benjamin Eberlei beberlei closed this
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
This page is out of date. Refresh to see the latest.
Showing with 17 additions and 1 deletion.
  1. +17 −1 lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php
18 lib/Doctrine/DBAL/Driver/OCI8/OCI8Connection.php 100644 → 100755
View
@@ -102,9 +102,25 @@ public function exec($statement)
return $stmt->rowCount();
}
+ /**
+ * {@inheritdoc}
+ */
public function lastInsertId($name = null)
{
- //TODO: throw exception or support sequences?
+ // 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;
}
/**
Something went wrong with that request. Please try again.