0

データベースのテーブルに行を挿入しようとしましたが、挿入クエリを実行できませんでした。また、エラーが発生しないため、何が問題なのかわかりません。

私のテーブル:

CREATE TABLE IF NOT EXISTS `general_info` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `First Name` varchar(30) NOT NULL,
  `Last Name` varchar(30) NOT NULL,
  `University` varchar(80) NOT NULL,
  `Major` varchar(50) NOT NULL,
  `Current_Level` varchar(50) NOT NULL,
  `Date_Joined` varchar(15) NOT NULL,
  `Current_Team` varchar(50) NOT NULL,
  `added_by` int(11) NOT NULL,
  `Phone` varchar(25) NOT NULL,
  `Email` varchar(50) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `member_id` (`added_by`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

私のhtml:

<body>

        <div class="memberInfo"> 
        <h1>Add A Member</h1>

        <form id=add_member name="add_member" method="post" action="addmember.php" >

                <fieldset>

                <legend>Member Details</legend>

                <ol>

                    <li>
                        <label for=first_name>First Name</label>
                        <input id=first_name name=first_name type=text placeholder="First Name" required autofocus>
                    </li>

                    <li>
                        <label for=last_name>Last Name</label>
                        <input id=last_name name=last_name type=text placeholder="Last Name" required autofocus>
                    </li>

                    <li>
                        <label for=email>Email</label>
                        <input id=email name=email type=email placeholder="example@domain.com" required>
                    </li>

                    <li>
                        <label for=university>University</label>
                        <input id=university name=university type=text placeholder="Eg.Istanbul University" required>
                    </li>

                    <li>
                        <label for=major>Major</label>
                        <input id=major name=major type=text placeholder="Eg. Business" >
                    </li>

                    <li>
                        <label for=phone>Phone</label>
                        <input id=phone name=phone type=tel placeholder="Eg. +447500000000" >
                    </li>

                    <li>
                        <label for=current_stage>Current Stage</label>
                        <input id=current_stage name=current_stage type=text placeholder="Eg.Newbie" required>
                    </li>

                    <li>
                        <label for=current_team>Current Team</label>
                        <input id=current_team name=current_team type=text placeholder="Eg.External Relations">
                    </li>

                    <li>
                        <label for=date_joined>Date Joined</label>
                        <input id=date_joined name=date_joined type=text placeholder="Eg. 08/24/2012" required>
                    </li>
                    </ol>

            </fieldset>

            <fieldset>

                <button type=submit >Save Member</button>


            </fieldset>

        </form>
      </div>
    </body>

ログインphpで$_SESSION['user_id']を取得する方法

 if($stmt->num_rows==1){                    
        echo $myusername . " ";
        session_register("myusername");
        session_register("mypassword");

        $_SESSION['user_id']=$user_id;
        $_SESSION['username'] = $myusername;
        session_write_close();
        header("location:login_success.php");

    }

addmember.php:

<?php
    error_reporting(E_ALL);
    ini_set('display_errors', 1);

    session_start();


if(isset( $_SESSION['user_id'])){


    $mysqli = new mysqli('localhost', 'root', 'password', 'aiesec');

    if(mysqli_connect_errno()) {
        echo "Connection Failed: " . mysqli_connect_errno();
        exit();
    }


    $stmt = $mysqli -> prepare("INSERT INTO general_info (First Name, Last Name, University, Major, Current_Level, Date_Joined, Current_Team, added_by, Phone, Email) VALUES (?,?,?,?,?,?,?,?,?,?)") 

    $stmt -> bind_param("sssssssiss", $First_Name, $Last_Name,$University,$Major, $Current_Level, $Date_Joined, $Current_Team, $added_by, $Phone, $Email);

    $First_Name=$_POST['first_name'];
    $Last_Name=$_POST['last_name'];
    $University=$_POST['university'];
    $Major=$_POST['major'];
    $Current_Level=$_POST['current_stage'];
    $Date_Joined=$_POST['date_joined'];
    $Current_Team=$_POST['current_team'];

    $added_by=$_SESSION['user_id'];

    $Phone=$_POST['phone'];
    $Email=$_POST['email'];

    $stmt -> execute();

    printf("%d Row inserted.\n", $stmt->affected_rows);

    printf("Errormessage: %s\n", $stmt->error);

    $stmt->close();

    $mysqli->close();

}
else{

    printf("Nope\n"); 
    header("location:main_login.php");

}

    ?>

すべてのコードを削除し、echoを配置して$_SESSION['user_id']出力を確認すると1、ステートメントが機能する場合にそうなります。

問題のある行はあるかもしれませんが $added_by=$_SESSION['user_id'];、よくわかりません。

挿入を修正するにはどうすればよいですか、またはエラーを確認するにはどうすればよいですか?

提案を事前に感謝します。

-----編集ソリューション-------これまでで最も単純な間違い

私は変わっFirst NameLast NameFirst_NameそしてLast_Name

行末にセミコロンを付けるのを忘れました $stmt = $mysqli -> prepare("INSERT INTO general_info (First Name, Last Name, University, Major, Current_Level, Date_Joined, Current_Team, added_by, Phone, Email) VALUES (?,?,?,?,?,?,?,?,?,?)")

セミコロンスクリプトを配置した後、データベースに行を追加しました

4

1 に答える 1

2

コードにエラーがあります

見てください

$First Name, $Last Name

次のような変数名にはアンダースコアを付ける必要があります。

$First_Name, $Last_Name 

マニュアルを見てください

于 2012-07-09T06:40:09.423 に答える