Jedes Mal, wenn ich versuche, eine Insert-Anweisung in meine Dastabase zu schreiben, erhalte ich einen "Falscher Dezimalwert: 'NULL' für die Spalte 'bounty3' bei Zeile 1" -Fehler. Wie füge ich einen Null-Wert in einen Dezimal-Datentyp ein? Soll ich nur den Standardwert 0.00 machen?
%Vor%Ich habe diese Anweisung auch mit einem NULL-Wert versucht. Hier ist der Fehler:
%Vor%Verwenden Sie leer, nicht null, wenn Sie den Standardwert wünschen.
Oh ... du versuchst eine leere Zeichenfolge in bounty3 einzufügen. Ersetzen Sie es durch NULL. Ich habe auch leere Strings für andere mögliche numerische Werte bemerkt, zB bonty4. Sie sollten alle leeren Zeichenfolgen durch NULL für numerische Werte ersetzen.
zB: mysql_query ("INSERT INTO empty_number, Nummer VALUES (NULL, 1)");
BEARBEITEN : HEY HEY bekommt den Punkt, Sie können NULL nicht auf einen numerischen Wert als 'NULL' einfügen, da dies eine Zeichenfolge ist, die Sie ohne Anführungszeichen als NULL einfügen sollten
Ich habe dieses Problem in MySql 5.1.61 behandelt. Wenn sich der Server im strikten Modus befindet, müssen Sie anstelle von '' für Dezimalfelder 0 eingeben. Wenn Sie den strikten Modus deaktivieren, können Sie einfach einen Nullwert auffüllen.
Sie können diese Abfrage ausführen, um NULL-Werte im Feld 'bounty3' zuzulassen.
ALTER TABLE songs
ÄNDERN bounty3
bounty3
DECIMAL (10,0) NULL;
Sie müssen sicherstellen, dass Ihr Datenbankschema NULL-Werte für diese Spalte zulässt. Führen Sie describe <tablename>;
in Ihrem MySQL-Client aus, um zu sehen, was das Schema für diese Tabelle ist.
Wenn das Schema null nicht zulässt, können Sie alter table
verwenden, um das Schema zu ändern. Stellen Sie sicher, dass Sie für diese Spalte NOT NULL
nicht angeben, und Sie sollten in Ordnung sein.
Stellen Sie sicher, dass der Feldtyp NULL
-Werte zulässt und dass der Standardwert NULL
ist.
Verwenden Sie dann:
%Vor%Dies funktioniert für Einfügungen oder Aktualisierungen.
Ich habe versucht, $date_value = NULL
zu verwenden, und ich habe sogar unset($date_value)
vor dem Einfügen oder Aktualisieren versucht, und es hat nie mit meinen Dezimalfeldern funktioniert. MySQL hat sie immer in 0.00 konvertiert. Die obige Methode war die einzige Lösung, die für mich funktionierte.