Propel:连接文本和字段内容

发布于 2024-11-09 04:25:47 字数 375 浏览 2 评论 0原文

我目前正在重构一些东西以使用 Propel。

我们目前有一个函数可以将文本添加到“历史记录”字段,如下所示:

UPDATE tablename 
  SET history = CONCAT(history, NOW(), "add this text to history") 
  WHERE ...;

我们使用 CONCAT() 函数来使更改原子化。否则(如果我们之前在某处读取字段值,然后在 PHP 中连接并更新该行),则可能会有另一个脚本介入并修改该字段,然后这些更改就会丢失。

我怎样才能在 Propel 中完成这个 CONCAT(..) ?我们使用 MySQL 和 MyISAM,因此简单地将其全部包装在事务中是行不通的。

I am currently refactoring some stuff to use Propel.

We currently have a function that adds text to a "history" field like this:

UPDATE tablename 
  SET history = CONCAT(history, NOW(), "add this text to history") 
  WHERE ...;

We do this using the CONCAT() function to make the change atomic. Otherwise (if we would read the field-value somewhere before and then concatenate within PHP and update the row), it's possible that another script comes in between and modifies the field, and those changes would then be lost.

How can I accomplish this CONCAT(..) in Propel? We're using MySQL and MyISAM, so simply wrapping it all in a transaction won't work.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

£烟消云散 2024-11-16 04:25:47

您可以使用 Propel 执行原始 SQL。我认为以任何其他方式这是不可能的。

You could execute the raw SQL using Propel. I don't think this is possible in any other way.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文