1

以下は、サインアップ ニュースレター用に作成したフォームと表です。フォームに新しい人を入力しようとすると、このメッセージが表示されます。この問題を解決するにはどうすればよいですか?

**フィールド 'ip_address' にはデフォルト値がありません INSERT INTO memberSET join_date = NOW() , first_name= 'John', last_name= 'D', email= 'jd@aol.com'

フィールド 'unsubscribe_date' にはデフォルト値がありません INSERT INTO memberSET join_date = NOW() , first_name= 'John', last_name= 'D', email= 'jd@aol.com'

フィールド 'unsubscribe_send_id' にはデフォルト値がありません INSERT INTO memberSET join_date = NOW() , first_name= 'John', last_name= 'D', email= 'jd@aol.com'**

これが私のフォームです:

    <table cellpadding="3" width="100%">
    <tbody>
        <tr>
            <td>Email <span class="required">*</span></td>
            <td><input type="text" class="text_input" name="email" value=""></td>
        </tr>
        <tr>
            <td>First Name <span class="required">*</span></td>
            <td><input type="text" class="text_input" name="first_name" value=""></td>
        </tr>
        <tr>
            <td>Last Name</td>
            <td><input type="text" class="text_input" name="last_name" value=""></td>
        </tr>
                    <tr>
            <td>
            Subscribed Communication
            </td>
            <td>
                <table>
                                                <tr>
                            <td><input type="checkbox" name="group_id[]" value="2" checked></td>
                            <td>RaceO'Clock Members</td>
                        </tr>
                                                                </table>
            </td>
        </tr>
        <tr>
            <td colspan="2" align="center">
                <input type="submit" name="submit" value="Subscribe!"> <br/>
                <em>* required fields</em>
            </td>
        </tr>
    </tbody>
    </table>


    </form>

これは私のテーブルです:

CREATE TABLE IF NOT EXISTS `member` (
  `member_id` int(11) NOT NULL auto_increment,
  `first_name` varchar(255) NOT NULL,
  `last_name` varchar(255) NOT NULL,
  `email` varchar(255) NOT NULL,
  `join_date` date NOT NULL,
  `ip_address` varchar(15) NOT NULL,
  `unsubscribe_date` date NOT NULL,
  `unsubscribe_send_id` int(11) NOT NULL,
  PRIMARY KEY  (`member_id`)
)  DEFAULT CHARSET=utf8;
4

3 に答える 3

2

デフォルト値のない null 以外のフィールドは、insert ステートメントで必須です。

次の 3 つの選択肢があります。

  1. デフォルト値を定義する
  2. null を許可するように列定義を変更する
  3. その列を挿入ステートメントに追加します
于 2013-09-14T19:24:45.453 に答える
1

すべての列でテーブルを作成しています。これは、値を挿入するときにNOT NULL列ができないことを意味します。NULL

makeNOT NULLが必要なDEFAULT場合は、この列の値を作成する必要があります。

これを使って:

     CREATE TABLE IF NOT EXISTS `member` (
     `member_id` int(11) NOT NULL auto_increment,
     `first_name` varchar(255) ,
     `last_name` varchar(255) ,
     `email` varchar(255) ,
      `join_date` date ,
      `ip_address` varchar(15),
      `unsubscribe_date` date ,
      `unsubscribe_send_id` int(11) ,
     PRIMARY KEY  (`member_id`)
    )  DEFAULT CHARSET=utf8;

または、その列を挿入ステートメントに追加し、空の文字列を挿入します。

そのように:

INSERT INTO member SET join_date = NOW() , 
                      first_name = 'John', 
                       last_name = 'D',
                           email = 'jd@aol.com' ,
                      ip_address = '' ,
                unsubscribe_date = '',
             unsubscribe_send_id = ''
于 2013-09-14T19:24:53.180 に答える