Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 检查数据库中的多个信息量_Php_Mysql - Fatal编程技术网

Php 检查数据库中的多个信息量

Php 检查数据库中的多个信息量,php,mysql,Php,Mysql,对于我的注册系统,当用户注册时,我想确保他们的用户名、电子邮件等没有被占用。我有代码来检查用户名是否存在,我也可以对其他东西做同样的检查 如何在不多次重写块的情况下执行此操作 tl;dr:如何以紧凑的方式检查数据库中的更多内容 $userquery = "SELECT * FROM users WHERE username = '$username'"; if ($result = $mysqli->query($userquery)) { if ($result->num_

对于我的注册系统,当用户注册时,我想确保他们的用户名、电子邮件等没有被占用。我有代码来检查用户名是否存在,我也可以对其他东西做同样的检查

如何在不多次重写块的情况下执行此操作

tl;dr:如何以紧凑的方式检查数据库中的更多内容

$userquery = "SELECT * FROM users WHERE username = '$username'";
if ($result = $mysqli->query($userquery)) {
    if ($result->num_rows > 0) {
        die ("Username Already Exists.");
    }
}

在where子句中使用'OR'条件

$userquery = "SELECT * FROM users WHERE username = '$username' OR email= '$email'";
if ($result = $mysqli->query($userquery)) {
    if ($result->num_rows > 0) {
        die ("Username/Email Already Exists.");
    }
}
编辑

那好吧,

function doesitexist($mysqli,$table,$field,$value) {
    $userquery = "SELECT * FROM $table WHERE $field = '$value' LIMIT 1";
    if ($result = $mysqli->query($userquery)) {
        if ($result->num_rows > 0) {
            return true;
        } else {
            return false;
        }
    } else {
        return('Error running Query');
    }

}
另一个编辑只是为了好玩。这应该需要一个字段和值数组来签入一个调用

$check = doesitexist($mysqli,'users',array('username'=>'bob','email'=>'someone@example.com'));

function doesitexist($mysqli,$table,$tocheck = array()) {

    if (count($tocheck)>0) {
        $where = '';
        foreach ($tocheck as $field=>$value) {
            $where .= $field." = '".addslashes($value)."' OR "; 
        }
        $where = trim($where," OR ");
        $userquery = "SELECT * FROM $table WHERE $where LIMIT 1";
        if ($result = $mysqli->query($userquery)) {
            if ($result->num_rows > 0) {
                return true;
            } else {
                return false;
            }
        } else {
            return('Error running Query');
        }
    } else {
        return("No Fields/Values to check");    
    }
}

使用函数并使用调用此函数argument@JunaidAhmed我真的很喜欢这个主意。谢谢!谢谢,但是我喜欢用函数来实现这个。