summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2009-04-15 13:30:17 +0000
committerDries Buytaert <dries@buytaert.net>2009-04-15 13:30:17 +0000
commitb0a6099918f7e8631647575432ff133a4c111a8e (patch)
treedee779735719ef20151226f9f35df82132ac7234
parentdfff6528ff1aefb054d42a925293751a43c43ff2 (diff)
downloadbrdo-b0a6099918f7e8631647575432ff133a4c111a8e.tar.gz
brdo-b0a6099918f7e8631647575432ff133a4c111a8e.tar.bz2
- Patch #432128 by Berdir: adding some babysitting code to insert queries -- don't execute query when there are no values.
-rw-r--r--includes/database/mysql/query.inc5
-rw-r--r--includes/database/pgsql/query.inc5
-rw-r--r--includes/database/query.inc5
-rw-r--r--includes/database/sqlite/query.inc4
4 files changed, 19 insertions, 0 deletions
diff --git a/includes/database/mysql/query.inc b/includes/database/mysql/query.inc
index d5cb36505..c9a3a51ce 100644
--- a/includes/database/mysql/query.inc
+++ b/includes/database/mysql/query.inc
@@ -20,6 +20,11 @@ class InsertQuery_mysql extends InsertQuery {
return NULL;
}
+ // Don't execute query without values.
+ if (!isset($this->insertValues[0]) && count($this->insertFields) > 0) {
+ return NULL;
+ }
+
$last_insert_id = 0;
$max_placeholder = 0;
diff --git a/includes/database/pgsql/query.inc b/includes/database/pgsql/query.inc
index 98d412ae6..a0f97b1b4 100644
--- a/includes/database/pgsql/query.inc
+++ b/includes/database/pgsql/query.inc
@@ -24,6 +24,11 @@ class InsertQuery_pgsql extends InsertQuery {
if (count($this->insertFields) + count($this->defaultFields) == 0) {
return NULL;
}
+
+ // Don't execute query without values.
+ if (!isset($this->insertValues[0]) && count($this->insertFields) > 0) {
+ return NULL;
+ }
$stmt = $this->connection->prepareQuery((string)$this);
diff --git a/includes/database/query.inc b/includes/database/query.inc
index 226ab5a01..8267d27c6 100644
--- a/includes/database/query.inc
+++ b/includes/database/query.inc
@@ -428,6 +428,11 @@ class InsertQuery extends Query {
return NULL;
}
+ // Don't execute query without values.
+ if (!isset($this->insertValues[0]) && count($this->insertFields) > 0) {
+ return NULL;
+ }
+
// Each insert happens in its own query in the degenerate case. However,
// we wrap it in a transaction so that it is atomic where possible. On many
// databases, such as SQLite, this is also a notable performance boost.
diff --git a/includes/database/sqlite/query.inc b/includes/database/sqlite/query.inc
index fb73d3297..aff32802f 100644
--- a/includes/database/sqlite/query.inc
+++ b/includes/database/sqlite/query.inc
@@ -19,6 +19,10 @@ class InsertQuery_sqlite extends InsertQuery {
if (count($this->insertFields) + count($this->defaultFields) == 0) {
return NULL;
}
+ // Don't execute query without values.
+ if (!isset($this->insertValues[0]) && count($this->insertFields) > 0) {
+ return NULL;
+ }
if (count($this->insertFields)) {
return parent::execute();
}