--- includes/bootstrap.inc.orig 2005-04-08 18:00:17.000000000 -0500 +++ includes/bootstrap.inc 2005-04-09 10:01:11.000000000 -0500 @@ -167,10 +167,16 @@ function variable_get($name, $default) { function variable_set($name, $value) { global $conf; - db_query("DELETE FROM {variable} WHERE name = '%s'", $name); - db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value)); - cache_clear_all('variables'); - + // be sure our test variable is different than $value + $test = $value === FALSE ? TRUE : FALSE; + // only query the database if necessary to add/change a value + if (variable_get("$name", $test) !== $value) { + db_query("UPDATE {variable} SET value = '%s' WHERE name = '%s'", serialize($value), $name); + if (!db_affected_rows()) { + @db_query("INSERT INTO {variable} (name, value) VALUES ('%s', '%s')", $name, serialize($value)); + } + cache_clear_all('variables'); + } $conf[$name] = $value; }