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