PHPによるデータベースのupdate文について

こんばんは。PHP初心者です。
現在、学生の登録システムを作成していますが、生徒情報をupdateする作業が上手くいきません。
こちらのサイトを元にphpを作成していますが、現在名前だけは更新できるものの、他の情報の更新ができません。
https://noumenon-th.net/programming/2016/01/20/mysql-3/

生徒情報を表示したページから、編集をクリックすると編集画面になり、編集画面では、前ページから引っ張ってきた情報を予めValueに入れ、変更の為の入力があった場合は変更された文字をValueに入れてデータベースの情報を更新したいと考えています。

現在、試行錯誤している為、名前と性別のupdateのみとなっております。
update2sample.phpの49行目に「$Gender」を記入し、UPDATE studentinfo SET Name=?, Gender=? WHERE id=?UPDATE studentinfo SET Name=:Name, Gender=:Gender WHERE id=?なども試しましたが、うまくいきません。

また、テストの為、色々作業を試しているのですが、実際にはデータベースの更新がされていないにも関わらず、「更新が完了しました」と表示されてしまう為、エラー表記につきましてもご教授ください。

初めての質問の為、不明点などあるかと思いますが、お力添えのほどよろしくお願いいたします。

発生している問題・エラーメッセージ

現在、名前は更新できるのですが、その他の内容が更新できません。
現在は、途中の為、名前と性別のupdateを試しています。

該当のソースコード

SELECT文にて下記表示

<div class="button">
<form action="update1sample.php" method="post">


<input type="hidden" name="id" value="<?=$row['id']?>">
<input type="hidden" name="Name" value="<?=htmlspecialchars($row['Name'], ENT_QUOTES, 'UTF-8')?>">
<input type="hidden" name="Gender" value="<?=htmlspecialchars($row['Gender'],ENT_QUOTES,'UTF-8')?>">
<input type="submit" value="編集">
</form>

</div>

updatesample1.phpの記載

require_once("db_studentinfo.php");
$mysqli = db_connect();

if(empty($_POST)) {
    echo "<a href='update1.php'>update1.php</a>←こちらのページからどうぞ";
    exit();
}else{
    if (!isset($_POST['id'])  || !is_numeric($_POST['id']) ){
        echo "IDエラー";
        exit();
    }else{
        //プリペアドステートメント
        $stmt = $mysqli->prepare("SELECT * FROM studentinfo WHERE id=?");
        if ($stmt) {
            //プレースホルダへ実際の値を設定する
            $stmt->bind_param('i', $id, $Name, $Gender);
            $id = $_POST['id'];
            $Name = $_POST['Name'];
            $Gender = $_POST['Gender'];

            //クエリ実行
            $stmt->execute();

            //結果変数のバインド
            $stmt->bind_result($id,$Name,$Gender);
            // 値の取得
            $stmt->fetch();

            //ステートメント切断
            $stmt->close();
        }else{
            echo $mysqli->errno . $mysqli->error;
        }
    }
}

<body>
<h1>変更画面</h1>

<p>変更箇所を入力してください</p>
<form action="update2sample.php" method="post">
<p>名前:<input type="text" name="Name" placeholder="" value="<?=htmlspecialchars($Name, ENT_QUOTES, 'UTF-8')?>"></P>
<p>性別:<input type="text" name="Gender" placeholder="" value="<?=htmlspecialchars($Gender, ENT_QUOTES, 'UTF-8')?>"></P>


<input type="hidden" name="id" value="<?=$id?>">
<input type="submit" value="変更する">
</form>

</body>

updatesample2.phpの記載

header("Content-type: text/html; charset=utf-8");

require_once("db_studentinfo.php");
$mysqli = db_connect();

if(empty($_POST)) {
    echo "<a href='update1.php'>update1.php</a>←こちらのページからどうぞ";
    exit();
}else{
    //名前入力チェック
    if (!isset($_POST['Name'])  || $_POST['Name'] === "" ){
        $errors['Name'] = "名前が入力されていません。";
    }

    if(count($errors) === 0){
        //プリペアドステートメント
        $stmt = $mysqli->prepare("UPDATE studentinfo SET Name=? WHERE id=?");
        if ($stmt) {
            //プレースホルダへ実際の値を設定する
            $stmt->bind_param('si', $Name, $id);
            $Name = $_POST['Name'];
            $id = $_POST['id'];
            $Gender = $_POST['Gender'];



            //クエリ実行
            $stmt->execute();
            //ステートメント切断
            $stmt->close();
        }else{
            echo $mysqli->errno . $mysqli->error;
        }
    }
}
<h1>変更画面</h1>

<?php if (count($errors) === 0): ?>
<p>変更完了しました。</p>
<?php elseif(count($errors) > 0): ?>
<?php
foreach($errors as $value){
    echo "<p>".$value."</p>";
}
?>
<?php endif; ?>

</body>

試したこと

update2sample.phpの49行目に「$Gender」を記入し、「UPDATE studentinfo SET Name=?, Gender=? WHERE id=?」や「UPDATE studentinfo SET Name=:Name, Gender=:Gender WHERE id=?」なども試しましたが、うまくいきません。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。