diff --git a/includes/database/sqlite/query.inc b/includes/database/sqlite/query.inc index d456afaafd155186b89697e3ee5fc5a6dc786b9b..a176ed64937c90e9e13ce7a680a2d0ddefefd9d9 100644 --- a/includes/database/sqlite/query.inc +++ b/includes/database/sqlite/query.inc @@ -101,7 +101,7 @@ public function execute() { } elseif (!isset($data)) { // The field will be set to NULL. - $condition->isNull($field); + $condition->isNotNull($field); } else { $condition->condition($field, $data, '<>'); diff --git a/modules/simpletest/tests/database_test.test b/modules/simpletest/tests/database_test.test index 2a086ceedae6696355bfd72974142cf83f90d3bc..231355ceb1d45fff45311381fe1191505f9cead0 100644 --- a/modules/simpletest/tests/database_test.test +++ b/modules/simpletest/tests/database_test.test @@ -718,6 +718,21 @@ class DatabaseUpdateTestCase extends DatabaseTestCase { $this->assertIdentical($saved_name, 'Tiffany', t('Updated name successfully.')); } + /** + * Confirm updating to NULL. + */ + function testSimpleNullUpdate() { + $this->ensureSampleDataNull(); + $num_updated = db_update('test_null') + ->fields(array('age' => NULL)) + ->condition('name', 'Kermit') + ->execute(); + $this->assertIdentical($num_updated, 1, t('Updated 1 record.')); + + $saved_age = db_query('SELECT age FROM {test_null} WHERE name = :name', array(':name' => 'Kermit'))->fetchField(); + $this->assertNull($saved_age, t('Updated name successfully.')); + } + /** * Confirm that we can update a multiple records successfully. */