さて、私のデータベースはこの順序で次のとおりです。
id (プライマリ - auto_increment)、ユーザー名 (一意)、パスワード、fname、メール
まず、ユーザーがユーザー名とパスワードを登録し、それをデータベースに追加するようにしています。同じユーザー名はありません。データがデータベースに追加されると、ID が自動的にインクリメントされます。すべてが機能しますが、ユーザーが電子メールと名前を変更できるアカウント設定ページを作成しましたが、機能しません。ユーザーに 1 つのページのフォームに変数を入力させると、名前が ufname (更新名の場合) および umail (更新メールの場合) として投稿されます。次に、データベースを更新する次のページに、次のコードがあります。
session_start();
if(!isset($_SESSION['userId'])) {
die(" You are not signed in. Please <a href='login.php'>click here</a> to sign in.");
} else {
$changeTXT = $_SESSION['username'];
$changeTXT = strtolower($changeTXT);
$changeTXT = ucfirst($changeTXT);
echo "Account Settings: <font color='red'>" . $changeTXT . "</font><br /><br />";
$ufname = $_POST['ufname'];
$umail = $_POST['umail'];
mysql_connect("localhost", "root", "sp1151") or die(mysql_error());
mysql_select_db("usersys") or die(mysql_error());
mysql_query("INSERT INTO userdb (id, username, password, fname, mail) VALUES('','','','$ufname', '$umail') ");
echo $umail . "<br /><br />";
echo $ufname;
}
ああ、ユーザーもセッションにログインしています。
しかし、ユーザーが入力した名と電子メール アドレスをデータベースの特定の行に挿入するにはどうすればよいでしょうか。私のデータベース名は userdb です。