gpt4 book ai didi

php - 只显示返回的 MySQL 查询的一部分?

转载 作者:行者123 更新时间:2023-11-29 02:18:35 28 4
gpt4 key购买 nike

我正在尝试过滤掉 MySQL 查询的结果。我正在从 Wordpress 数据库中提取数据。具体来说,我试图只提取用户角色。

在 Wordpress 中,返回值是这样的:

a:1:{s:13:"administrator";s:1:"1";}

我只想看到返回的是“管理员”、“作者”、“订阅者”等,而不是所有其他信息。

根据我的理解(但我是一个初学者),我不能使用 substr(),因为字符的长度不同,角色之前的信息也不同。

有没有办法过滤掉所有其他信息,直接在 MySQL 查询中返回“administrator”?

这是我当前的查询(我还从另一个表中提取姓名、电子邮件地址、密码等):

SELECT wp_users.ID, wp_users.user_email, wp_users.user_pass, wp_users.display_name, wp_usermeta.user_id, wp_usermeta.meta_value
FROM wp_users
JOIN wp_usermeta
ON wp_users.ID = wp_usermeta.user_id
WHERE (wp_usermeta.meta_value LIKE '%admin%')
OR (wp_usermeta.meta_value LIKE '%author%')
OR (wp_usermeta.meta_value LIKE '%subscriber%')

最佳答案

字符串是 PHP 序列化的(通过 serialize() PHP 函数序列化)。

首先你需要反序列化:

$dbValue = 'a:1:{s:13:"administrator";s:1:"1";}';
$arr = unserialize($dbValue)

print_r($arr);

哪些输出:

array(1) {
["administrator"]=>
string(1) "1"
}

如果您确定角色/用户组始终排在第一位,您可以这样获取。

$role = array_keys($arr)[0];

我解决你的问题了吗?

关于php - 只显示返回的 MySQL 查询的一部分?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35440399/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com