2016-08-09 8 views
-1

Ich habe eine Schulverwaltungssoftware mit PHP gebaut. Wenn ich es auf meinem lokalen Server ausführen es funktioniert gut, aber wenn ich es auf einen Remote-Server hochgeladen es gibt mir eine Fehlermeldung:Webseiten funktionieren gut auf dem lokalen Server, aber online ist es nicht

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

Außerdem funktioniert es auf einem freien Web-Hosting-Server in Ordnung, aber auf einem anderen Web-Host funktioniert es manchmal und gibt manchmal den Fehler.

+4

Klingt wie 'Religion' ist auf' NOT NULL' gesetzt und wie der Fehler sagt, hat keine Standard. Sie müssen entweder den Standardwert für die Spalte festlegen oder sie der Einfügung hinzufügen. –

Antwort

0

Sieht aus wie der Stamm des Problems Datenbankstruktur Strukturunterschied zwischen lokaler Umgebung und leben. Versuchen Sie eine der folgenden Lösungen:

1.Edit Ihre Abfrage in PHP religion enthalten:

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 Ihre Tabellenstruktur so religion Feld gesetzt ist NULL-Werte

0

Vereinfacht zu ermöglichen Ausdrücken, alle Felder in der Datenbanktabelle können so eingestellt werden, dass sie einen Standardwert haben. Wenn Sie eine INSERT-Abfrage ausführen und nicht explizit ein oder mehrere Felder festlegen, versucht die Datenbank, die Zeile mit dem Standardwert für diese Felder zu erstellen.

In Ihrem Fall hat das Feld religion in Ihrer Datenbank jedoch keinen Standardwert definiert. Also, weil Sie ihm keinen anderen Wert für religion mitgeteilt haben, weiß er nicht, was zu tun ist.

Sie sagen, dass es manchmal funktioniert und manchmal nicht. Das könnte daran liegen, dass Sie manchmal die Religion festlegen und sie manchmal in Ihrer Webform leer lassen.

Die beste Lösung wäre, zu Ihrer Datenbank zu gehen und die teacher Tabelle so zu ändern, dass religion einen Standardwert von NULL hat. Null bedeutet grundsätzlich "nichts". Wenn Sie also Zeilen erstellen, ohne eine Religion anzugeben, wird NULL in diese Spalte eingefügt.

Sie können eine SQL-Abfrage ausführen, das zu tun:

How do I modify a MySQL column to allow NULL?

Oder wenn Sie nicht sicher sind, wie das zu tun, die Chancen sind, können Sie Ihr Web-Host-Konto anmelden und es wird eine Option sein um die Datenbank zu verwalten - wahrscheinlich über phpMyAdmin. Suchen Sie nach der Datenbanktabelle, die Sie bearbeiten möchten, und wechseln Sie zur Registerkarte Struktur. Klicken Sie dann auf . Ändern Sie oder . Bearbeiten Sie im Feld religion. Setzen Sie den Standardwert auf NULL.

Verwandte Themen