В настоящее время я занимаюсь рефакторингом некоторых вещей для использования Propel.
В настоящее время у нас есть функция, которая добавляет текст в поле «история», например:
UPDATE tablename
SET history = CONCAT(history, NOW(), "add this text to history")
WHERE ...;
Мы делаем это, используя функцию CONCAT(), чтобы сделать изменение атомарным. В противном случае (если бы мы прочитали значение поля где-то раньше, а затем соединили в PHP и обновили строку), возможно, между ними появится другой скрипт и изменяет поле, и тогда эти изменения будут потеряны.
Как я могу выполнить этот CONCAT(..) в Propel? Мы используем MySQL и MyISAM, поэтому просто обернуть все это в транзакцию не получится.