如何检查用户是否已经存在?

时间:2013-12-04 02:23:45

标签: php mysql

class Users {
    public $username = null;
    public $password = null;
    public $salt = "Zo4rU5Z1YyKJAASY0PT6EUg7BBYdlEhPaNLuxAwU8lqu1ElzHv0Ri7EM6irpx5w";

   public function __construct( $data = array() ) {
         if( isset( $data['username'] ) ) $this->username = stripslashes( strip_tags( >$data['username'] ) );
         if( isset( $data['password'] ) ) $this->password = stripslashes( strip_tags( >$data['password'] ) );
    }
    }

 public function storeFormValues( $params ) {
         $this->__construct( $params ); 
 }

 public function register() {
    $correct = false;
        try {
            $con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
            $con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
            $sql = "INSERT INTO users(username, password) VALUES(:username, :password)";

            $stmt = $con->prepare( $sql );
            $stmt->bindValue( "username", $this->username, PDO::PARAM_STR );
            $stmt->bindValue( "password", hash("sha256", $this->password . $this->salt), PDO::PARAM_STR );
            $stmt->execute();
            return "Registration Successful <br/> <a href='index.php'>Login Now</a>";
        }catch( PDOException $e ) {
            return $e->getMessage();
        }
 }

 }

我想检查我的数据库中是否已存在用户,因为它允许我随时创建具有相同用户名的帐户。 感谢。

3 个答案:

答案 0 :(得分:0)

我会在这里推荐一些帮助。

1)使您的用户名列在数据库中唯一。这样可以防止插入不唯一的用户名。

2)在用户名上有唯一索引后,尝试插入,并检查插入是否成功。既然您可以从mysql获取错误代码,如果查询不成功且错误代码是由于重复值...抛出用户名已存在错误。

答案 1 :(得分:-1)

如果用户名存在,这是如何返回的基本思路。

public function username($username)
{
    $sth = $this->db->prepare("SELECT id, username FROM table WHERE username = ?");
    $sth->execute(array($username));

    $row = $sth->fetch();

    if(username == $row['username'])
    {
        do code here since username does not exist
    } else {
        echo 'username already exists';
    }
}   

答案 2 :(得分:-1)

$sell= mysql_query("select * from `signup` where emailid='$email'");
$cntc=mysql_num_rows($sell);
if($cntc==0) {
  $sql=mysql_query("INSERT INTO `signup`(`firstname`,`lastname`,`emailid`,`dob`,`companyname`,`phoneno`,`password`) VALUES ('$name','$lastname','$email','$dob','$comname','$phone','$pass')");
  if($sql) {
    echo'inserted successfully';
  }
} else {
  echo'Email is already exist. ';
}
相关问题