1

私はここで頭がいっぱいです。さまざまなブラウザーで試してみましたが、同じトリガー エラー メッセージが表示Notice: Duplicate entry for key 'PRIMARY'されます。ページが同時に 2 回実行されていると思います。コードは、セッション データを格納するブロックに到達しません。どんな洞察も大歓迎です!

            <?php               
                if($_POST[submit])
                {                   
                    $username = "";
                    $password = "";
                    $hostname = "";
                    $dbname = "";

                    //connection to the database:
                    $db = mysqli_connect($hostname, $username, $password, $dbname, '3306')
                    or die("Unable to connect to MySQL");

                    $id = !empty($_POST[id]) ? "'$_POST[id]'" : "NULL";
                    $fname = !empty($_POST[fname]) ? "'$_POST[fname]'" : "NULL";
                    $lname = !empty($_POST[lname]) ? "'$_POST[lname]'" : "NULL";    

                    $sql = "INSERT INTO Table(id, fname, lname)
                                VALUES ($id, $fname, $lname)";

                    $result = $db->query($sql) OR trigger_error($db->error);

                    if ($result && $db->affected_rows > 0)
                    {
                        // store session data
                        $_SESSION['fileid']=$id;
                        echo 'Creating file '.$id.'<br/>
                            <a href = "partTwo.php" class="button">Continue</a>';
                    }
                    else
                        echo "No changes made.";
                }               
                else 
                    echo '<form method="post" action="createFile.php">
                            <div><span class = "formlabel">File number:</span><input type="Text" name="id"></div>
                            <div><span class = "formlabel">First name:</span><input type="Text" name="fname"></div>
                            <div><span class = "formlabel">Last name:</span><input type="Text" name="lname"></div>
                            <input class="submit" type="Submit" name="submit" value="Submit">
                        </form>';
            ?>
4

2 に答える 2