0

登録フォームを作成し、php でデータを追加していますが、何らかの理由でデータベースにデータを追加できません。このコードに何か問題があることがわかりますか?

<?php
mysql_connect("localhost", "root", "password") or die("No Connection");;
mysql_select_db("music") or die("No Database");;

$username= mysql_real_escape_string($_REQUEST["username"]);
$password= mysql_real_escape_string($_REQUEST["password"]);
$email= mysql_real_escape_string($_REQUEST["email"]);
$hash = md5( rand(0,1000) );

mysql_query("INSERT INTO members (id, username, password, email, hash, active) VALUES('', '$username', '$password', '$email', '$hash', '')") or die("Can't Add");
if(mysql_affected_rows()>0){
echo "1";
}else{
echo "2";
}
?>

mysql_query 行に単純な問題があることを示す Can't Add エラーが表示され続けます

ありがとうございました

4

5 に答える 5

4

Can't addはエラーではなく、最後に追加したすべてのステートメントをキャッチするだけです。

実際の問題を確認するには、行末のコードを変更して、mysql_queryから取得した実際のエラーを含めますmysql_error()

mysql_query("INSERT INTO members (username, password, email, hash, active) VALUES('$username', '$password', '$email', '$hash', '')")
    or die("Can't Add - " . mysql_error());

これにより、エラーに関する詳細が表示されます。それを投稿すると、その理由で回答を更新できます。

の挿入も削除したことに注意してidください。列がAUTO_INCREMENTである場合は必要ありません。

于 2013-03-11T11:09:05.577 に答える
0

どの列にも固有の制約がある可能性があります

于 2013-03-11T11:13:25.310 に答える
0

どちらか

mysql_query("INSERT INTO members (id, username, password, email, hash, active) 
             VALUES(null, '$username', '$password', '$email', '$hash', '')") or die("Can't Add");
                    ^^^^

また

mysql_query("INSERT INTO members (username, password, email, hash, active) 
             VALUES( '$username', '$password', '$email', '$hash', '')") or die("Can't Add");
于 2013-03-11T11:20:35.097 に答える
0

id が主キーの場合は、'' を null に変更します

于 2013-03-11T11:08:23.877 に答える
0

idとして作成し、挿入クエリauto-incremented primary keyから削除します。

于 2013-03-11T11:10:49.553 に答える