postgresql fügt bei der Abfrage einen Nullwert ein

Lesezeit: 2 Minuten

Benutzer-Avatar
huddreth

In meiner PHP-Code-Abfrage habe ich einen Fehler erhalten, wenn ich einen Nullwert in die Tabelle einfügen werde. Die Spaltennamen „number1“, „number2“ und „number3“ sind ganze Zahlen und können einen Nullwert haben.

Wenn kein Nullwert vorhanden ist, funktioniert die Abfrage

Abfrage ist so
füge in Tabelle(Zahl1,Zahl2,Zahl3) Werte (1,2,3) ein;

aber wenn ich im Eingabeformular in PHP einen leeren Wert hinterlasse,

Zum Beispiel werde ich keinen Wert für die Spalte “number2” platzieren, die Abfrage sieht so aus.

füge in Tabelle(Zahl1,Zahl2,Zahl3) Werte (1,,3) ein;

es heißt FEHLER: Syntaxfehler bei oder nahe “,” SQL-Status: 42601

Hat jemand eine Idee, wie man das lösen kann?

Diese Abfrage ist wahrscheinlich die Lösung, aber gibt es einen anderen Weg?
füge in Tabelle(Zahl1,Zahl2,Zahl3) Werte (1,Null,3) ein;

weil ich so viele Variablen habe und ein bisschen faul bin, einige Bedingungen zu setzen, wie wenn diese Variable einen leeren Wert zurückgibt, dann value=”null”

Benutzer-Avatar
Simo Kivistö

Sie fügen ein NULL Wert durch Eingabe von NULL:

INSERT INTO table(number1,number2,number3) VALUES (1,NULL,3);

Wenn Sie eine Variable haben und diese Variable leer ist, möchten Sie a einfügen NULL Wert, den Sie verwenden können NULLIF mit der in einfachen Anführungszeichen eingeschlossenen Variable, um sich darauf vorzubereiten (dies ist eine etwas schmutzige Lösung, da Sie die Variable als leeren String behandeln und dann in eine Ganzzahl konvertieren müssen):

INSERT INTO table(number1,number2,number3) VALUES (1,NULLIF('$var','')::integer,3);

  • gibt es da noch eine andere lösung? ^_^ weil ich so viele Variablen habe und ich nicht meine Zeit verschwenden möchte, Bedingungen für die Variablen zu platzieren, wenn es einen leeren Wert zurückgibt, dann weisen Sie diese Variable = “null” zu. Übrigens danke dafür das 🙂

    – huddreth

    20. März 2015 um 9:03 Uhr

  • Ok, eine weitere Option hinzugefügt.

    – Simo Kivistö

    20. März 2015 um 9:16 Uhr

  • tanx SIR … Ich platziere dies in meinem Code, da der Datentyp doppelte Genauigkeit hat INSERT INTO table(number1,number2,number3) VALUES (1,cast(NULLIF('$variable[$i]','') as double precision),3);

    – huddreth

    20. März 2015 um 9:36 Uhr

  • $variable, seien Sie vorsichtig mit der SQL-Einschleusung!

    – Frank Heikens

    20. März 2015 um 11:16 Uhr

  • Was sollte ich tun, um Injektionen zu vermeiden? ^_^

    – huddreth

    22. März 2015 um 23:52 Uhr

1031520cookie-checkpostgresql fügt bei der Abfrage einen Nullwert ein

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy