From 9079d78481c6148b9aca36f90e8bf34ffb01f03d Mon Sep 17 00:00:00 2001 From: Dries Buytaert Date: Fri, 5 Jun 2009 16:55:45 +0000 Subject: - Patch #481288 by Berdir: add support for INSERT INTO ... SELECT FROM ... queries. --- includes/database/sqlite/query.inc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'includes/database/sqlite') 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) . ')'; } -- cgit v1.2.3