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


Check if user login exist in database

您好,我在添加登录用户时想检查该用户是否已在数据库中,如果不是,它将显示一条消息,它将被添加到数据库中:这是 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 );   
    ?>

我没有错误,但它添加了用户,即使它的存在..请帮忙!!

你的第一行代码,你使用这个:

$connection = ConnectionBD(); 

为什么没有new关键字还是标准函数?如果它是一个类,你需要实例化它,即:

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

你不会从中得到一个thang,因为对象没有正确实例化

尝试将查询更改为以下内容:

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