php - 如何查看WP数据库中的用户角色

标签 php mysql sql wordpress

我正在开发一个脚本,用于根据我们的 WP 数据库检查 get 请求。到现在为止我都过得很好。

现在我需要检查与数据库中的获取请求中的电子邮件关联的角色。如图所示here我知道用户角色存储在 wp_usermeta 表的 meta_value 列中。

我需要在我的脚本中运行一个条件,如果用户角色是订户,那么我将回显“已禁用”,如果它是我们的自定义角色 ntnw_member,那么我将回显“已启用”。

以下是我在 meta_value 列字段中看到的内容,仅作为示例:

a:1:{s:11:"ntnw_member";b:1;}

我只需要获取双引号之间的部分并检查它是否等于订阅者或ntnw_member。

这是查询的尝试 - 请注意 checkRole 变量是我遇到困难的地方:

/**************************************************
    Get our request and test against database
**************************************************/
if(isset($_GET["email"])) {

    $userEmail = mysqli_real_escape_string($connect, $_GET["email"]);

    //check email against database
    $checkEmail = mysqli_query($connect, "select * from wp_usermeta WHERE meta_value = '$userEmail'") or die('Error: ' . mysqli_error($connect));

    if(mysqli_num_rows($checkEmail)>0){

     while ($row = mysqli_fetch_array($checkEmail, MYSQL_ASSOC)) {

        //get the user_id from database
        $userID = $row[user_id];

        $subscriber = Array(
            'subscriber' => 1
        );

        $ntnwMember = Array(
            'ntnw_member' => 1
        );

        $checkRole = mysqli_query($connect, "select * from wp_usermeta WHERE user_id = '$userID' AND meta_value = '$ntnwMember'") or die('Error: ' . mysqli_error($connect));

        if ($checkRole){
          echo 'Enabled';
        } else {
          echo 'Disabled';
        }

    } //end while $row
} else {
    //if email address does not match anything on file, kill this script
    die('Failed: Your email address does not match our records');
} //end if if(mysqli_num_rows($checkEmail)>0){}

} //endif isset

最佳答案

$checkRole 出现错误时将返回 false。

相反,使用 mysqli_num_rows 检查是否有返回的行。

$userID = $row["user_id"];

$sql = "select * from wp_usermeta WHERE user_id = '" . $userID . "' AND meta_value LIKE '%ntnw_member%'";

$checkRole = mysqli_query($connect, $sql) or die('Error: ' . mysqli_error($connect));

if (mysqli_num_rows($checkRole)>0){
  echo 'Enabled';
} else {
  echo 'Disabled';
}

关于php - 如何查看WP数据库中的用户角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25395313/

相关文章:

mysql - LIKE 的正确语法是什么?

python - 指定绑定(bind)变量后的实际 SQL 语句

php - 为特定字符之前和之后的文本字符串着色

mysql - 将表转换为指定引擎

mysql - MySQL 中何时使用单引号、双引号和反引号

mysql - 尝试重置忘记的 MySql Root 密码

SQL Server : how to know if any row is referencing the row to delete

php - Twig (在 Symfony 中): access template parameters from twig extensions

php - 将 Facebook PHP SDK 实现到 Yii Framework 中的最佳方式

php函数整数参数问题