$wpdb的增量值(Value=Value+1)->更新

时间:2012-09-21 作者:supersuphot

此sql查询

$wpdb->query("UPDATE log SET total=total+1 WHERE id=\'1\')");
如何将其转换为$wpdb->update()语句?

例如:。

$wpdb->update(\'log\', array(\'total\'=>\'total+1\'), array(\'id\'=>\'1\'));

2 个回复
最合适的回答,由SO网友:Otto 整理而成

不需要。不需要使用WPDB update()函数。update函数假定列的值是字符串。您可以使用format参数覆盖它,但它只允许%d、%f和%s(整数、浮点、字符串)。它不允许对total+1这样的列进行操作。

您必须直接使用query()函数来进行更新。

SO网友:Jiju Thomas Mathew

通过使用查询方法,您可能面临清理问题的风险。通过使用更新方法,您将面临竞争条件的风险。为了克服这两个问题,就在更新之前,在行上发出一个select,最后一个子句是“FOR update”。要获取结果,可以使用与update和get\\u row方法相同的条件。

唯一需要注意的是,如果您的条件遇到多行,那么除了使用wpdb的查询方法之外,没有其他方法。

结束

相关推荐

由于wp-blog-header.php的原因,使用WPDB输出原始XML失败

我正在编写一个插件。这个插件的一个特定文件应该是从插件的自定义DB表中提取数据,并以最小的处理将其作为原始XML输出。问题是,为了在直接打开文件时让WPDB类工作,我必须添加一个require to wp blog头。php。这非常有效,但事实证明,包含文件会输出标记<;html>,<;头部>,和(<);body>,这有点搞砸了XML的某些部分。有什么方法可以抑制wp博客标题的标签吐出行为吗。php?[B] 让WPDB以其他方式工作?或者我应该在插件的这个文件中不使用WPDB