簡體   English   中英

如何將SQL數據庫中的字符串與PHP變量進行比較

[英]How to Compare a String in an SQL Database to a PHP Variable

好的,正如標題所述,我想了解如何將SQL數據庫中的字符串與PHP字符串進行比較。

<!DOCTYPE html>
<html>

<head>
<title>Processing Request</title>
<link rel="Stylesheet" href="style.css" type="text/css" />
</head>

<body>
<h1>Account Creation</h1>
    <h3>

    <?php
    $dbhost = "localhost";
    $username = "root";
    $password = "";
    $connect = mysqli_connect("$dbhost", "$username", "$password");
    $db = "accounts";

    if (!$connect){
        die("ERROR: Database connection failed: " . mysqli_connect_error());
    }

    mysqli_select_db($connect, $db);

    $makeUser = $_POST["makeUser"];
    $makePass = $_POST["makePass"];
    $sql = "INSERT INTO accounts (username, password) VALUES ('$makeUser', '$makePass')";


    if("SELECT username FROM accounts WHERE username = '$makeUser'"){

上面的代碼行是我嘗試將SQL數據庫中的值(來自“ accounts”表中“ username”列)與用戶輸入的用於創建帳戶($ makeAccount)的字符串進行比較的地方。 假設這段特定的代碼告訴用戶是否已經嘗試使用要為其帳戶設置用戶名的用戶名。

但是,每次我運行此代碼(並在我可以在數據庫中直觀看到的形式中輸入用戶名都沒有被使用)時,它仍然表示該用戶名已經被使用,即使它沒有被定義。

        header("Location: createaccount.php?status=userTaken");
    }
    else{
        mysqli_query($connect, $sql);
        echo "Account creation was succesful!";
    }

    mysqli_close($connect);
    ?>

    Click <a href="index.php">here</a> to login.

    </h3>
    </body>
</html>

謝謝,所有答案都可以得到。 :)

PS:這是我用PHP編寫的第一個程序,也是我第一次使用SQL數據庫,因此,請嘗試使其簡單易懂。

PSS我嘗試了許多解決方案,但都沒有成功。

請更改比較的if語句

if("SELECT username FROM accounts WHERE username = '$makeUser'"){

if(mysqli_query("SELECT username FROM accounts WHERE username = '$makeUser'")){
$sql = mysqli_query("SELECT username FROM accounts WHERE username = '$makeUser'");
if(mysqli_num_rows($sql) > 0)
{
   //exists
}
else
{
   //does not exist
}

暫無
暫無

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

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