-
Operații tip update pe câmpuri text
Atunci când am de modificat parţial un câmp text,
NU hardcodez / suprascriu valorile câmpurilor text în totalitate:
$this->execute('UPDATE table SET textField = 'updated text value' WHERE id=2');CI înlocuiesc doar acele porțiuni din text direct implicate:
$this->execute('UPDATE table SET textField = REPLACE(textField, "to_replace", "replacement") WHERE id = 2');
sau
$this->execute('UPDATE table SET textField = CONCAT(textField, "text_to_concat") WHERE id = 2');Astfel mă asigur că nu suprascriu modificări asupra restului textului (părțile din el cu care migrarea mea nu are treabă) ce vin prin altă migrare, pe care eu încă nu o am (s-a întâmplat).
Obs: prin metoda $this->update() nu merg funcţii mysql în text value, adică
$this->update('table', ['textField' => 'CONCAT(textField, "text_to_add")', $condition);valoarea rezultată va fi textual ‘CONCAT(textField, “text_to_add”)’, nu rezultatul concatenării.