2014-11-02 87 views
0

我正在使用以下代码来检查用户是否已经存在于MySQL数据库中,但每次尝试使用已经用户名创建新帐户它可以让我创建它而不是返回错误信息。找不到方法来检查用户是否已经存在

<?php 
if(isset($_POST['B1'])){ 
    $user=$_POST['U']; 
    $email=$_POST['email']; 
    $pass=$_POST['P']; 
    $cpass=$_POST['CP']; 

    if($user!=null && $pass!=null && $cpass!=null && $email!=null){ 
     if($pass==$cpass){ 
      $sql="SELECT FROM users (username, email, password) WHERE username='$user'"; 
      $checkuser=mysql_query($sql); 
      if(mysql_num_rows($checkuser)>0){ 
        echo"This username has been already taken."; 
      }else{ 
       $query="INSERT INTO users(username, email, password) VALUES('$user','$email',md5('$pass'))"; 
      $result=mysql_query($query) or die("error3"); 
      mysql_close(); 
      echo "<center><h2>Thanks for have joined us, ".$user."!</h2><br></center>"; 
      echo"<center><h2>You are now ready to use your account.</h2><br></center>"; 
      echo"<center><a href='login.php' class='button specialp'>Let's get started</a></center>"; 
      } 
     } 
    }else{ 
     echo"<center><p><h2>Oops, something went wrong!<h2></p></center>"; 
     echo"<center><a href='signup.php' class='button specialp'>Try again</a></center>"; 
    } 

} 

?> 

我在做什么错?

+0

您的用户名柱(和电子邮件一样的东西),这绝对是独一无二的。当你这样做,你不能再添加用户名,插入查询将失败。然后您可以简单地检查插入的执行是否正确 – baao 2014-11-02 21:47:13

+1

我不知道您是否使用了遗留的东西,但我会建议使用http://wiki.hashphp.org/PDO_Tutorial_for_MySQL_Developers PHP PDO扩展或使用http://codular.com/php-mysqli Mysqli扩展如果你可以 – JammyDodger231 2014-11-02 21:53:44

+0

谢谢大家!我遵循迈克尔的建议,它效果很棒!再次感谢! – gigapico00 2014-11-03 20:31:56

回答

0

在你的代码段,

$sql="SELECT username, email, password FROM users WHERE username='$user'"; 
$checkuser=mysql_query($sql); 
if(mysql_num_rows() > 0) { 
...... 

尝试更换该部分上面的代码,看看在你的DB

相关问题