0

PHP5.3を使用してフォームからMySQL5.5データベースにデータを挿入する際に問題が発生しました。データを挿入できますが、挿入が重複します。

これが私のコードです:

<?php
$host ="localhost";
$user ="root";
$password ="password";
$database ="database1";
$table ="users";

mysql_connect("$host","$user","$password")or die(mysql_error());
mysql_select_db("$database")or die(mysql_error());
$mysql = "INSERT INTO $table (username,password)
          VALUES('$_POST[username]','$_POST[password]')";
if(!mysql_query($mysql)) die(mysql_error());
echo"Data inserted";
mysql_close();
?>

私が受け取るエラーメッセージは

"undefined index:username" 
"undefined index:password"

私のテーブルフィールドは、3つのID、ユーザー名、パスワードです。

4

3 に答える 3

0

エラーが発生してnoticeいます。

$_POST['username']存在するかどうかを確認する

if(isset($_POST[username]) && isset($_POST[password])){
       $host ="localhost";
       $user ="root";
       $password ="password";
       $database ="database1";
       $table ="users";
       mysql_connect("$host","$user","$password")or die(mysql_error());
       mysql_select_db("$database")or die(mysql_error());
       $mysql = "INSERT INTO $table (username,password)
       VALUES('$_POST[username]','$_POST[password]')";
       if(!mysql_query($mysql)) die(mysql_error());
       echo"Data inserted";
       mysql_close();
}

ユーザー名がデータベースに既に存在するかどうかを確認していないため、重複挿入が発生しています。実行する前にINSERT、ユーザー名がデータベースに既に存在するかどうかを確認します。既に存在する場合は、挿入を許可しません。

データベースへの接続には mysqli または pdo を使用します。mysql_* 関数はまもなく非推奨になります。

于 2012-11-27T14:34:29.307 に答える