summaryrefslogtreecommitdiff
path: root/includes/database/sqlite
diff options
context:
space:
mode:
Diffstat (limited to 'includes/database/sqlite')
-rw-r--r--includes/database/sqlite/query.inc9
1 files changed, 7 insertions, 2 deletions
diff --git a/includes/database/sqlite/query.inc b/includes/database/sqlite/query.inc
index 98fa80754..287fc9008 100644
--- a/includes/database/sqlite/query.inc
+++ b/includes/database/sqlite/query.inc
@@ -21,11 +21,11 @@
class InsertQuery_sqlite extends InsertQuery {
public function execute() {
- if (count($this->insertFields) + count($this->defaultFields) == 0) {
+ if (count($this->insertFields) + count($this->defaultFields) == 0 && empty($this->fromQuery)) {
return NULL;
}
// Don't execute query without values.
- if (!isset($this->insertValues[0]) && count($this->insertFields) > 0) {
+ if (!isset($this->insertValues[0]) && count($this->insertFields) > 0 && empty($this->fromQuery)) {
return NULL;
}
if (count($this->insertFields)) {
@@ -39,6 +39,11 @@ class InsertQuery_sqlite extends InsertQuery {
public function __toString() {
// Produce as many generic placeholders as necessary.
$placeholders = array_fill(0, count($this->insertFields), '?');
+
+ if (!empty($this->fromQuery)) {
+ return "INSERT INTO {" . $this->table . '} (' . implode(', ', $this->insertFields) . ') ' . $this->fromQuery;
+ }
+
return 'INSERT INTO {' . $this->table . '} (' . implode(', ', $this->insertFields) . ') VALUES (' . implode(', ', $placeholders) . ')';
}