如何使用序列化数组数据库Wordpress进行CRUD操作?

如何使用序列化数组数据库Wordpress进行CRUD操作?,wordpress,wordpress-database,Wordpress,Wordpress Database,我在metauser表中有如下所示的数据。如您所见,数据是以序列化数组的形式存在的。如何推送阵列数据?我想将帖子id保存在元书签中。但是如果我使用add\u user\u meta(),它会在新行中创建数据,而不是在值中添加数据(因此,在一个用户中会有两个具有不同值的元书签)。如果我使用update\u user\u meta()它只是替换旧的新值,而不是添加(推送)数组数据。如何向元值添加新数据(数组) 如下图所示,这是插件ulike WordPress的post\u status和comm

我在metauser表中有如下所示的数据。如您所见,数据是以序列化数组的形式存在的。如何推送阵列数据?我想将帖子id保存在元书签中。但是如果我使用
add\u user\u meta()
,它会在新行中创建数据,而不是在值中添加数据(因此,在一个用户中会有两个具有不同值的元书签)。如果我使用
update\u user\u meta()
它只是替换旧的新值,而不是添加(推送)数组数据。如何向元值添加新数据(数组)

如下图所示,这是插件ulike WordPress的
post\u status
comment\u status
的元数据。我认为当有新帖子或新评论时,该值也会随着相关id的增加而增加

[

如果有不正确或不合适的词,请自由编辑此问题


谢谢!

您可以使用
get\u user\u meta
函数获取值

$post_status = get_user_meta( $user_id, 'post_status', true );
现在根据您的要求修改
$post_status
数组,并进行更新 在它之后


记住WordPress使用
maybe\u serialize
maybe\u unserialize
保存元表并从元表中获取值。

要将数组作为用户元存储在WordPress数据库中,可以使用PHP
serialize()
函数。在本例中,将为当前用户存储一个数组(如屏幕截图所示)

要修改序列化数组,可以使用PHP
unserialize()
函数。在本例中,将检索、修改和更新用户meta
\u bookmark\u文章

// retrieves the value of the user meta "_bookmark_article"
$bookmark_article = get_user_meta( get_current_user_id(), '_bookmark_article', true );
// convert value to array
$bookmark_article = unserialize( $bookmark_article );

// adds a value to the array
$bookmark_article_updated = $bookmark_article_array[] = 3445;
// updates an array value based on the key
$bookmark_article_updated = $bookmark_article_array[0] += 50;

// updates the value of the user meta "_bookmark_article"
update_user_meta( get_current_user_id(), '_bookmark_article', serialize($bookmark_article_updated) );

最好使用WP
maybe\u serialize()
@Bhautik当然。但是如果您知道该值是一个数组,您可以使用PHP
serialize()
函数。如果它是数组或对象,
maybe\u serialize()
函数将返回相同的值。
$bookmark = array(
    0 => 3058,
);
update_user_meta( get_current_user_id(), '_bookmark_article', serialize($bookmark) );
// retrieves the value of the user meta "_bookmark_article"
$bookmark_article = get_user_meta( get_current_user_id(), '_bookmark_article', true );
// convert value to array
$bookmark_article = unserialize( $bookmark_article );

// adds a value to the array
$bookmark_article_updated = $bookmark_article_array[] = 3445;
// updates an array value based on the key
$bookmark_article_updated = $bookmark_article_array[0] += 50;

// updates the value of the user meta "_bookmark_article"
update_user_meta( get_current_user_id(), '_bookmark_article', serialize($bookmark_article_updated) );