我想通过添加新值来更新作为数组的选项,但是没有原子性或数据完整性的保证。
示例
//Get the option value (an array)
$val = get_option( "some-option" );
//Add to the array
$val[] = "something";
/** Here, another session might already have it and is calling "update_option" */
//Save back (this overwrites whatever that other person did)
update_option( "some-option", $val );
wordpress中是否有提供原子性的东西?
答案 0 :(得分:0)
我的第一个想法是添加第二个用作数据锁的选项。
在允许修改选项之前,您需要检查锁是否返回false。
在给予它更多考虑之后,不会更好地满足您的需求。如果您有多个人更新相同选项,则表更有意义。
无论如何,锁是如何工作的:
if ( false === get_option( 'some-option-lock' ) ) {
update_option( 'some-option-lock', true );
$val = get_option( "some-option" );
//Add to the array
$val[] = "something";
update_option( "some-option", $val );
update_option( 'some-option-lock', false );
}