使用php检查用户名是否已经存在

使用php检查用户名是否已经存在,php,mysqli,Php,Mysqli,我有一个注册表格,按下“注册”按钮后,我想检查数据库,看看该用户是否已经存在,如果已经存在,则返回一条错误消息“name ready exists”,如果不存在,当然,我希望它注册该用户。我找到了许多以前被问过的解决方案,但都没有真正起作用。经过多次修改后,当前代码如下: ?php if(isset($_POST['register'])) { session_start(); $FName = $_POST['firstname']; $LName = $_POS

我有一个注册表格,按下“注册”按钮后,我想检查数据库,看看该用户是否已经存在,如果已经存在,则返回一条错误消息“name ready exists”,如果不存在,当然,我希望它注册该用户。我找到了许多以前被问过的解决方案,但都没有真正起作用。经过多次修改后,当前代码如下:

?php 

if(isset($_POST['register'])) {

    session_start();
    $FName = $_POST['firstname'];
    $LName = $_POST['lastname'];
    $Email = $_POST['email'];
    $PW = $_POST['password'];
    $servername = "localhost";
    $username = "root";
    $password = "root";
    $dbname = "users_db_physicians";
    $conn = new mysqli($servername, $username, $password, $dbname);
    $result_x = $conn->query("SELECT FROM users_database (username) WHERE username = '$Email'");
    if (mysqli_num_rows($result_x)>=1) {
    echo "name already exists";
    }
    else
    {
    $conn->query("INSERT INTO users_database (first_name, last_name, username, password)Values('{$FName}', '{$LName}', '{$Email}', '{$PW}')");
    header('Location: login.php');
    echo "it works";
    }


    }
?> 
到目前为止,使用上面的代码,唯一发生的事情是用户注册(我检查了表并更新了表),页面移动到login.php,所以我猜ELSE只起作用,没有生成行,或者if语句有问题

请帮忙

谢谢你的时间,
oliver_foxx

您没有选择任何列,因此我猜您的查询失败了<代码>从脚本顶部选择,添加
错误报告(E\u ALL);ini设置(“显示错误”,1)
您的
SELECT
语句出现SQL语法问题,导致
$result\u x
不是结果资源,else案例正在执行,但您没有看到错误。SELECT应采用
SELECT username FROM username='the name'
的形式,而不是调用
query()
,在MySQLi中使用
prepare()/bind_param()/execute()
占位符作为用户名占位符非常重要,以确保针对SQL注入的安全性(还有其他方法,但这是首选方法)请参阅MySQLi示例谢谢大家,@MichaelBerkowski选择结构有故障,我是从另一个帖子上抄来的,可惜没注意到。我将致力于SQL注入预防。非常感谢!您没有选择任何列,因此我猜您的查询将失败<代码>从脚本顶部选择,添加
错误报告(E\u ALL);ini设置(“显示错误”,1)
您的
SELECT
语句出现SQL语法问题,导致
$result\u x
不是结果资源,else案例正在执行,但您没有看到错误。SELECT应采用
SELECT username FROM username='the name'
的形式,而不是调用
query()
,在MySQLi中使用
prepare()/bind_param()/execute()
占位符作为用户名占位符非常重要,以确保针对SQL注入的安全性(还有其他方法,但这是首选方法)请参阅MySQLi示例谢谢大家,@MichaelBerkowski选择结构有故障,我是从另一个帖子上抄来的,可惜没注意到。我将致力于SQL注入预防。非常感谢!