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