簡體   English   中英

如何使用if語句正常工作來創建此PDO mysql查詢?

[英]How can I make this PDO mysql query with if statements work correctly?

我正在從零開始為一個小項目建立一個網站。

我偶然發現了我的一個小問題,並且摸不着頭腦無濟於事! 這是我的代碼;

else if (isset($_POST['hidden']) && $_POST['hidden'] = 1) {

$q = $dbc -> prepare("SELECT username FROM accounts WHERE username = ?");
$q -> execute(array($_POST['username']));

    if ($q -> rowCount() > 0) {
        echo 'USERNAME TAKEN<br />';
    }

$q = $dbc -> prepare("SELECT email FROM accounts WHERE email = ?");
$q -> execute(array($_POST['email']));

    if ($q -> rowCount() > 0) {
        echo 'EMAIL TAKEN<br />';
    }

    else {
        $q = $dbc -> prepare("INSERT INTO accounts (fname, lname, email, password, username, gender) VALUES (?, ?, ?, ?, ?, ?)");       $q -> execute(array($_POST['fname'], $_POST['lname'], $_POST['email'], $_POST['password'], $_POST['username'], $_POST['gender']));
        echo 'YOUR ACCOUNT NEEDS ACTIVATING';
    }
}

現在我的問題在於檢查是否已經使用了用戶名和電子郵件。

我有一個用於檢查用戶名的if語句。

我有一個if語句來檢查電子郵件。

如果一切正常,我還有一個用於將數據插入mysql表的聲明。

我遇到的問題是用戶名是相同的,電子郵件不是那么else語句仍然會觸發,我知道它就像我在我的html文檔上那樣

'USERNAME TAKEN'和'ACCOUNT NEEDS ACTIVATING'

我想把它們放在'else if'語句中,但我需要用戶名和電子郵件一起工作,如果一個工作而不是另一個工作。 有任何想法嗎??

提前致謝。

這是你在找什么?

else if (isset($_POST['hidden']) && $_POST['hidden'] = 1) {


    $q = $dbc -> prepare("SELECT username FROM accounts WHERE username = ?");
    $q -> execute(array($_POST['username']));
    $username_taken = $q->rowCount() > 0;

    $q = $dbc -> prepare("SELECT email FROM accounts WHERE email = ?");
    $q -> execute(array($_POST['email']));

    $email_taken = $q->rowCount() > 0;

    if ($username_taken || $email_taken) {
        if ($username_taken) {
            echo 'USERNAME TAKEN<br />';
        }
        if ($email_taken) {
            echo 'EMAIL TAKEN<br />';
        }
    }
    else {
        $q = $dbc -> prepare("INSERT INTO accounts (fname, lname, email, password, username, gender) VALUES (?, ?, ?, ?, ?, ?)");       $q -> execute(array($_POST['fname'], $_POST['lname'], $_POST['email'], $_POST['password'], $_POST['username'], $_POST['gender']));
        echo 'YOUR ACCOUNT NEEDS ACTIVATING';
    }
}

暫無
暫無

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

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