2017-08-03 6 views
0

私はPHPを初めて使い、非常に基本的なサインアップフォームをプログラミングして練習しています。しかし、私は名前が取られても、私のプログラムはSQLテーブルにアカウントを追加してしまうという問題を抱えています。 これは、名前が存在するかどうかを確認するために私のコードです:PHP - インデックスがSQL内に既に存在するかどうかをチェック

$sql = "SELECT * FROM accounts WHERE name = '$name'"; 
$result = $conn->query($sql); 

if (mysql_fetch_array($result) === true) { 
    die("Error: Username has been taken"); 
} else { 
//register account 
} 

私はこれを実行するたびに、関係なく名前が何であるか、プログラムはelseステートメント内のコードのブロックを実行しません。私は必要に応じてより多くの情報を提供することができます。

+0

https://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php – Hackerman

+0

'prepared statements'についても学んでください... – Hackerman

+1

mysqliとmysqlを混在させているようです。 – Noman

答えて

0

mysqliを使用している場合は使用してください。

if ($result->num_rows > 0) { 
die("Error: Username has been taken"); 
} 
else { 
// register here; 
} 

P.Sは、MySQL read hereを使用しないでください。

0

テーブルを変更して、フィールドを一意にすることができます。

+0

私は可能ですが、インデックスがあるかどうかを確認することができます。 –

+0

** mysql_fetch_assoc **を試してみてください。 –

関連する問題