function DatabaseUpdateTestCase::testExpressionUpdate

7.x database_test.test DatabaseUpdateTestCase::testExpressionUpdate()

Test updating with expressions.

File

drupal-7.x/modules/simpletest/tests/database_test.test, line 857

Class

DatabaseUpdateTestCase
Update builder tests.

Code

function testExpressionUpdate() {
  // Set age = 1 for a single row for this test to work.
  db_update('test')
    ->condition('id', 1)
    ->fields(array('age' => 1))
    ->execute();

  // Ensure that expressions are handled properly.  This should set every
  // record's age to a square of itself, which will change only three of the
  // four records in the table since 1*1 = 1. That means only three records
  // are modified, so we should get back 3, not 4, from execute().
  $num_rows = db_update('test')
    ->expression('age', 'age * age')
    ->execute();
  $this->assertIdentical($num_rows, 3, 'Number of affected rows are returned.');
}