dポイントプレゼントキャンペーン実施中!

新規登録の時の重複をチェックしたいです
テーブルのカラムはシンプルにidとnameとpassだけです
nameに同じ名前の人がいると困るので、HTMLフォームから送られた名前と登録してある名前の重複がないかチェックするようにできますか?
やってみましたが動きません(ーー;;

$name = mysql_real_escape_string($_POST['name']);
$name3=array();
$name2 = mysql_query('SELECT name FROM hoge2 WHERE name=$name');

while($data = mysql_fetch_assoc($name2)) {
array_push($name3, $data['name']);
}

if(isset($name3)){
print "重複があります";
}else{
//ここからsql
$sql = sprintf('INSERT INTO hoge2 SET name="%s", pass="%s"',
$name,
mysql_real_escape_string($_POST['pass'])
);
//ここまで
mysql_query($sql) or die(mysql_error());
}

A 回答 (1件)

>mysql_query('SELECT name FROM hoge2 WHERE name=$name');



シングルクォーテーションで囲んでいるので$nameは展開されません
また、プリペアド処理ではないので$nameにクォーテーションがないと
かりに展開されても文字列はマッチしません

せめてこんな感じに
mysql_query("SELECT name FROM hoge2 WHERE name='".$name."'");
    • good
    • 0
この回答へのお礼

ありがとうございます!いけました

気が付きませんでした(汗

お礼日時:2013/05/21 15:32

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!