我有这种方法检查数据库中是否存在用户名:

public function checkUsername($username)
{

    global $wpdb;
    $result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}users WHERE con_username =".$username);
    if(!empty($result)){

        return false;
    }

}


然后,我正在像这样检查用户名:

if(!$users->checkUsername($_POST['email'])){
        $error++;
        $error_msg[]='Email already exists!';
    }


但是,这不起作用,因为它告诉我我尝试的每个用户名已经存在。我认为我没有正确填写退货单。

最佳答案

如果找不到电子邮件,您将不会返回任何内容,因此checkUsername在这种情况下将返回null

$users->checkUsername($_POST['email'])将始终为emptynull

尝试-

return empty($result);


该功能应为-

public function checkUsername($username)
{

    global $wpdb;
    $result = $wpdb->get_row( "SELECT * FROM {$wpdb->prefix}users WHERE con_username ='".$username."'");
    return empty($result);

}


然后检查-

if(!$users->checkUsername($_POST['email'])){


并尝试实现一些安全性以输入数据。

08-27 16:05