summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorJoas Schilling <nickvergessen@owncloud.com>2015-12-08 09:40:20 +0100
committerJoas Schilling <nickvergessen@owncloud.com>2015-12-08 09:40:20 +0100
commitf2c7acb3c065c35a1e75d512d0ce193f1989296f (patch)
tree4c3cec0c14b0ea0b1f0cb092515d112cafd13ec9 /lib
parent736e133c047a22b587294a1231b61ac2575f3f83 (diff)
downloadnextcloud-server-f2c7acb3c065c35a1e75d512d0ce193f1989296f.tar.gz
nextcloud-server-f2c7acb3c065c35a1e75d512d0ce193f1989296f.zip
Allow getting the last insert id without much hassle
Diffstat (limited to 'lib')
-rw-r--r--lib/private/db/querybuilder/querybuilder.php15
-rw-r--r--lib/public/db/querybuilder/iquerybuilder.php8
2 files changed, 23 insertions, 0 deletions
diff --git a/lib/private/db/querybuilder/querybuilder.php b/lib/private/db/querybuilder/querybuilder.php
index 02d8ee4344d..e70733b5509 100644
--- a/lib/private/db/querybuilder/querybuilder.php
+++ b/lib/private/db/querybuilder/querybuilder.php
@@ -1024,6 +1024,21 @@ class QueryBuilder implements IQueryBuilder {
}
/**
+ * Used to get the id of the last inserted element
+ * @return int
+ * @throws \BadMethodCallException When being called before an insert query has been run.
+ */
+ public function getLastInsertId() {
+ $from = $this->getQueryPart('from');
+
+ if ($this->getType() === \Doctrine\DBAL\Query\QueryBuilder::INSERT && !empty($from)) {
+ return (int) $this->connection->lastInsertId($from['table']);
+ }
+
+ throw new \BadMethodCallException('Invalid call to getLastInsertId without using insert() before.');
+ }
+
+ /**
* @param string $table
* @return string
*/
diff --git a/lib/public/db/querybuilder/iquerybuilder.php b/lib/public/db/querybuilder/iquerybuilder.php
index beb922b7feb..e3105cf134e 100644
--- a/lib/public/db/querybuilder/iquerybuilder.php
+++ b/lib/public/db/querybuilder/iquerybuilder.php
@@ -796,4 +796,12 @@ interface IQueryBuilder {
* @since 8.2.0
*/
public function createFunction($call);
+
+ /**
+ * Used to get the id of the last inserted element
+ * @return int
+ * @throws \BadMethodCallException When being called before an insert query has been run.
+ * @since 9.0.0
+ */
+ public function getLastInsertId();
}