Php 如何检查用户名是否已注册

Php 如何检查用户名是否已注册,php,if-statement,Php,If Statement,如果工作不正常,则我的异常。你能告诉我哪里出了错,并解释它是如何工作的吗?谢谢大家! 这是我的PHP代码 <?php include_once('config.php'); if(isset($_POST['username'])){ $username = $_POST['username']; $first_name = $_POST['first_name']; $last_name = $_POST['last_na

如果工作不正常,则我的
异常。你能告诉我哪里出了错,并解释它是如何工作的吗?谢谢大家!

这是我的PHP代码

<?php
    include_once('config.php');

    if(isset($_POST['username'])){
        $username = $_POST['username'];
        $first_name = $_POST['first_name'];
        $last_name = $_POST['last_name'];
        $email = $_POST['email'];
        $phone = $_POST['phone'];
        $password = $_POST['password'];

        if(strlen($password)<6){
            exit ('Password must contain 6 symbols');
        }

        $password = md5($password);
        $query ="INSERT INTO register(username,first_name,last_name,email,phone,password) VALUES ('$username', '$first_name', '$last_name', '$email', '$phone', '$password')"
        or die(mysqli_error($connect));

        if($result=mysqli_query($connect,$query)) {
            echo '<h3><font color="red">You have successfully registered</font></h3>';
        }else if (mysqli_num_rows($result)==0) {
            exit("Username already exists");
        }
    } 

?>
试试这个:

$result=mysqli_query($connect,$query);
if($result) {
    echo '<h3><font color="red">You have successfully registered</font></h3>';
}else {
    exit("Username already exists");
}
$result=mysqli\u查询($connect,$query);
如果($结果){
echo“您已成功注册”;
}否则{
退出(“用户名已存在”);
}
因此,使用第一条指令运行查询,然后将查询结果分配给$result。接下来检查$result是否存在。如果是,则已插入用户。如果不是,则复制用户。执行此检查不需要向else添加if语句。

mysqli_num_rows()
只能用于
SELECT
查询,它返回结果集中的行数

要测试受修改查询影响的行数,请使用。这个参数应该是
$connect
,而不是
$result
(它只是一个布尔值)

$result=mysqli\u查询($connect,$query);
如果(!$result){
die(mysqli_错误($connect));
}elseif(mysqli受影响的行($connect)==0){
退出(“用户名已存在”);
}否则{
echo“您已成功注册”;
}

或die
应该在
mysqli\u查询
行的末尾,而不是字符串赋值。除了Barmar的回答之外:你从不处理数据库错误,就像你用查询产生的错误一样,否则如果工作正常,但是你没有else分支:)在insertion上有一个
num\u行
,这段代码有严重的SQL注入问题-请在上线前修复。(我已经删除了修复你的代码的请求-这可能是你被否决的原因-我们很乐意在这里提供帮助,但我们不会为他们做任何工作。值得记住的是,你的下一个问题!)@Styphon不,这不属于代码审查。请阅读
$result = mysqli_query($connect, $query);
if (!$result) {
    die (mysqli_error($connect));
} elseif (mysqli_affected_rows($connect) == 0) {
    exit ("Username already exists");
} else {
    echo '<h3><font color="red">You have successfully registered</font></h3>';
}