簡體   English   中英

檢查用戶名,電子郵件是否已存在於mysql數據庫中

[英]Check if username, email already exists in mysql db

我正在嘗試檢查數據庫中是否已經存在用戶名或電子郵件,可惜它無法正常工作。

有人知道我要失敗嗎?

我的代碼:

<?php
    require_once('handling/database.php');
    if(!empty($_POST)){
        $username = $_POST['username'];
        $email = $_POST['email'];
        $password = $_POST['password'];
        $database = new database;
        $database->connect();

        $user_check = $database->execute_query("SELECT * FROM Users WHERE Username = '" . $username . "'");
        $email_check = $database->execute_query("SELECT * FROM Users WHERE Email = '" . $email . "'");

        if($user_check && mysql_num_rows($user_check) > 0){
            echo 'The following username is already in use: ' . $username;
        }else if($email_check && mysql_num_rows($email_check) > 0){
            echo 'The following email is already in use: ' . $email;
        }else{
            $results = $database->execute_query("INSERT INTO Users (Username, Email, Password) VALUES ('" . $username . "', '" . $email . "', '" . $password . "')");
            if($result = 'false'){
                echo 'The following account was created: ' . $username;
            }else{
                echo 'Error: Could not create the following account: ' . $username;
            }
        }
    }
?>

還有來自我的database.php類的execute_query函數:

function execute_query($sql) {
  if ( $results = $this->_mysqli->query($sql) ) {
     return $results;
  }
  else {
     return false;
  }
}

帳戶創建工作正常,用戶名檢查和電子郵件檢查不起作用。

由於database類使用mysqli擴展名,因此您不能對其使用mysql_XXX函數。 您需要使用mysqli_num_rows

if ($result = 'false')

有兩個問題:首先,您必須使用=====比較值, =是用於賦值。 其次, 'false'是一個字符串,因為您將其放在引號中,但該函數返回布爾值false 它應該是:

if ($result == false)

或簡單:

if (!$result)

另一個問題是,您從查詢分配的變量是$results ,但是隨后您測試了$result (末尾為s )。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM