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