Php 检查数据库中是否存在用户登录

Php 检查数据库中是否存在用户登录,php,forms,pdo,Php,Forms,Pdo,您好,我在添加登录用户时,我想检查该用户是否已经在数据库中,如果没有,它将显示一条消息,它将被添加到数据库中: 这是html格式的表单: <form name="inscription" method="post" action="03insert.php"> login: <input type="text" name="login" value=""/> <input type="submit" name="subm

您好,我在添加登录用户时,我想检查该用户是否已经在数据库中,如果没有,它将显示一条消息,它将被添加到数据库中: 这是html格式的表单:

<form name="inscription" method="post" action="03insert.php">
        login: <input type="text" name="login" value=""/>
               <input type="submit" name="submit" value="Inscription"/>
</form> 
这是PHP中的代码:

<?php
        $connection = ConnectionBD();   

        if( isset($_POST['submit']) ){
            $login = $_POST['login'];

            $sql_1 = "SELECT * FROM users WHERE user_login = :login";
            $query = $connection->prepare($sql_1);
            $query->bindParam(':login', $login, PDO::PARAM_STR);
            $query->execute();
            $count = $query->rowCount();
            if ($count > 0){
                echo 'This login already exist';
            }
            else
            {
            $sql_2 = 'INSERT INTO users VALUES(null,"'.$login.'")';
            $result = $connection->exec( $sql_2 );
            if( $result > 0 ){
                echo 'Registered successfully';
            }else{ echo 'ERROR !<br><br>'; }
            }
        }
        unset( $connection );   
    ?>

我没有错误,但它添加了用户,甚至它的存在..请帮助

尝试将查询更改为:

$sql_1 = "SELECT * FROM users WHERE user_login = :login";
//just removed the single quotes '

在您的第一行代码中,您使用以下命令:

$connection = ConnectionBD(); 
为什么没有新的关键字,或者它是一个标准函数?如果它是一个类,您需要实例化它,即:

$connection = new ConnectionBD(); 
// OR
$connection = ConnectionBD()::initFunction(); // If it's static 

由于对象未正确实例化,您将无法从中获得thang值

占位符为:login not':login'请,rtfm为什么不使用SELECT COUNT*?然后编辑您的问题以反映该更改。因为这个问题,我差点就把你的问题结束了。你改变了什么?哪里请编辑您的问题。@u_mulder我正在考虑用一个PDO方法来结束这个问题。尽管它解决了这个问题,但这是一个非常低质量的答案。我不明白为什么我更改了这个评论,但是@SamBelge中仍然没有任何更改,所以请删除it@Fred-它还没有解决,很抱歉,因为我是tis网站的新成员,我不知道如何使用它。@SamBelge你早些时候接受了它,现在你让我看起来像个傻瓜,结束了你的问题。你在这里玩什么游戏?主持人:为什么我关于他们是否关注上面的评论的评论被从这里删除了???@SamBelge plus,你只是再次编辑,没有将其标记为编辑,这就是为什么此人的答案被否决的原因;这不是我的反对票。所以,您显然没有向我们展示您的完整代码,并且您声明没有出现错误。这是因为您没有检查它们,我们如何知道您是否成功连接到db?