2016-11-05 10 views
0

タイトルのとおり、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私は多くのソリューションを試しましたが、すべて成功しませんでした。

+1

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

からご比較

のif文を変更してください。 ? – RST

+0

SQLを 'if()'ステートメントに入れることはできません。データベースクエリを実行するにはmysqli_query()を呼び出し、結果の行を取得するにはmysqli_fetch_assoc()を呼び出す必要があります。連想配列が返され、そこから選択した列の値にアクセスできます。 mysqliのドキュメントには例があり、Web上で多くのチュートリアルを見つけることができます。 – Barmar

答えて

0

クエリのいくつかの種類を保持 `if`条件に期待何
if(mysqli_query("SELECT username FROM accounts WHERE username = '$makeUser'")){ 
0
$sql = mysqli_query("SELECT username FROM accounts WHERE username = '$makeUser'"); 
if(mysqli_num_rows($sql) > 0) 
{ 
    //exists 
} 
else 
{ 
    //does not exist 
} 
+0

_not_では、mysql_ * API呼び出しとmysqli_ * API呼び出しを混ぜることを推奨していません。前者は非推奨であり、後者では機能しません。 –

+0

@RickJames yeah mybad –

関連する問題