can I use db_update to update a field ( appending a string to the current string in the database ) Is it posible to do something like:

db_update('my_module_table')-&gt;fields( array('myfield' =&gt; &lt;myfield&gt; + 'newstring') );


Or do I have to load the field value first by using db_select() ?

Maybe someway with db_query() ?
You can still use db_update() just with an expression() instead of fields(), e.g.

db_update('my_module_table')
  -&gt;expression('myfield', 'myfield + :newstring', array(':newstring' =&gt; 'Some string'))
  -&gt;execute();


Although it strikes me that still wouldn't work as you're trying to concatenate strings (the + operator doesn't perform string concatenation as far as I know). This should do it:

db_update('my_module_table')
  -&gt;expression('myfield', 'CONCAT(myfield, :newstring)', array(':newstring' =&gt; 'Some string'))
  -&gt;execute();