タイトルのとおり、SQLデータベースの文字列とPHP文字列を比較する方法を知りたいと思います。私は、ユーザーがアカウントを作成するために入力した文字列に私のSQLデータベースに(テーブル「アカウント」の欄「ユーザ名」から)の値を比較しようとしていますどこ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'"){
上記のコードの行があります($ 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>
ありがとうございます、すべての回答はappretiatedです。 :)
P.S.これは私がPHPで書いている最初のプログラムであり、初めてSQLデータベースを使用しているので、単純で理解しやすいようにしてください。
P.S.S私は多くのソリューションを試しましたが、すべて成功しませんでした。
に
からご比較
のif文を変更してください。 ? – RST
SQLを 'if()'ステートメントに入れることはできません。データベースクエリを実行するにはmysqli_query()を呼び出し、結果の行を取得するにはmysqli_fetch_assoc()を呼び出す必要があります。連想配列が返され、そこから選択した列の値にアクセスできます。 mysqliのドキュメントには例があり、Web上で多くのチュートリアルを見つけることができます。 – Barmar