2016-01-20 206 views
-5

你好,我已经同时加入我要检查,如果该用户已经在数据库登录用户,它会显示一个消息,如果没有它会被添加到数据库: 这是形式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); 
    ?> 

我没有错误,但它添加用户甚至其存在..Please帮助!

+0

占位符是':login'不是'“:登录” '请,RTFM –

+0

为什么你不使用SELECT COUNT(*)? –

+0

然后编辑您的问题以反映该更改。因为它,我差点关闭你的问题。 –

回答

-1

尝试查询改成这样:

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

即使它解决了它,这是一个非常低质量的答案。 –

+0

,我看不出为什么这个评论*“我改变了,但没有改变”*仍然在这里@SamBelge所以删除它 –

+0

@ Fred-ii-它还没有解决,对不起,因为我的新网站,我不knpw如何使用它以及.. –

0

你的第一行代码,您使用此:

$connection = ConnectionBD(); 

为什么没有new关键字或者是一个标准的功能?如果您需要进行实例化一个类,即:

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

的对象不正确实例你不会从它那里得到一胜