2016-08-09 14 views
-1

私はPHPで構築された学校管理ソフトウェアを持っています。私は私のローカルサーバー上でそれを実行すると、それが正常に動作しますが、私は、リモートサーバーにアップロードしたときに、それは私にエラーを与える:ウェブページはローカルサーバーで正常に動作しますが、オンラインでは動作しません

Error Number: 1364

Field 'religion' doesn't have a default value

INSERT INTO `teacher` (
    `name`, 
    `birthday`, 
    `sex`, 
    `address`, 
    `phone`, 
    `email`, 
    `password` 
) VALUES (
    'teacher1', 
    '08/09/2016', 
    'male', 
    'Dir Upper Pakistan', 
    '0944840412', 
    '[email protected]', 
    '7110eda4d09e062aa5e4a390b0a572ac0d2c0220' 
); 

Filename: controllers/Admin.php

Line Number: 41

また、無料のウェブホスティングサーバー上で正常に動作しますが、別のWebホスト上で動作することがあり、時にはエラーが発生することがあります。

+4

'religion'のようなサウンドは' NOT NULL'に設定されています。エラーが示すように、デフォルトはありません。列のデフォルトを設定するか、挿入に追加する必要があります。 –

答えて

0

問題の根本のように見えるのは、ローカル環境とライブのデータベーステーブルの違いです。以下のように対応してください:PHPで

1.Editクエリreligionを含める:

INSERT INTO teacher (name, birthday, sex, address, phone, email, password, religion) 
VALUES ('teacher1', '08/09/2016', 'male', 'Dir Upper Pakistan', '0944840412', '[email protected]', '7110eda4d09e062aa5e4a390b0a572ac0d2c0220', 'myreligion') 

2.Updateあなたのテーブル構造のでreligionフィールドはシンプルでnull値に

0

を許可するように設定されていますデータベース表のすべてのフィールドにデフォルト値を設定できます。 INSERTクエリを実行し、明示的に1つ以上のフィールドを設定しない場合、データベースはこれらのフィールドの既定値を使用して行を作成しようとします。

ただし、ご使用のデータベースのreligionフィールドにはデフォルト値が定義されていません。したがって、religionに使用する他の値を教えてくれなかったので、何をすべきか分かりません。

あなたは時にはうまくいくと言いますが、時にはそうではありません。これは、時には宗教を設定し、時にはそれをあなたのウェブフォームに空のままにしておくことができるためです。

religionのデフォルト値がNULLになるように、データベースにアクセスしてteacherテーブルを変更することをお勧めします。 Nullは基本的に「何も意味しない」という意味です。したがって、宗教を指定せずに行を作成すると、その列にNULLが置かれます。

How do I modify a MySQL column to allow NULL?

をそれとも、それを行うには方法がわからない場合、チャンスはあなたがあなたのWebホストのアカウントにログインすることができますし、オプションがあるでしょう:

あなたはそれを行うには、SQLクエリを実行することができますおそらくphpMyAdminを介してデータベースを管理します。編集するデータベーステーブルを見つけて構造タブに移動し、をクリックします。またはreligionフィールドにを編集します。既定値をNULLに設定します。

関連する問題