I ran the following update query on php 5.4.4:

db_update('dbo.PackageDayRates')
      ->fields(array(
        'AdditionalDayRate' => $xero_codes['day']['price'],
      ))
      ->condition('DayRateID', 1)
      ->execute();

...and received the following error:
Illegal string offset 'field' in UpdateQuery_dblib->removeFieldsInCondition()

The patch below, applied to query.inc in the dblib folder, seemed to fix the issue:
https://drupal.org/comment/5899380#comment-5899380