NULL als Insert Into Value angeben?


Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

EuroCent

Erfahrenes Mitglied
Hallo zusammen,

Ich habe eine PHP Anweisung, in denen Ich eine Excel auslese.
Wenn in einem Feld kein Wert zu gewiesen ist, soll statt '' => NULL hinterlegt werden

Beispiel:
SQL:
INSERT INTO [dbo].[temp]
([firstname], [lastname], [email], [exitdate])
VALUES('Test1', 'Tester1', NULL, NULL);

INSERT INTO [dbo].[temp]
([firstname], [lastname], [email], [exitdate])
VALUES('Test2', 'Tester2', NULL, '2020-06-17');

INSERT INTO [dbo].[temp]
([firstname], [lastname], [email], [exitdate])
VALUES('Test3', 'Tester3', 'test@test.de', '2020-06-17');
Per PHPSpreadsheet lese Ich die Excel entsprechend aus und generiere dabei dann die SQL.
Jetzt möchte Ich aber, wenn in einem Feld kein Wert enthalten ist, dass das Feld dann mit NULL geschrieben wird.

Das auslesen etc... funktioniert auch soweit, nur scheitert es aktuell an der SQL-Anweisung. :)

Das Feld [exitdate] ist das Typ Datetime hinterlegt und darf null sein
Ich arbeite mit sqlsrv Funktionen.

Wie kann Ich das entsprechend Umsetzen?
Gibt es da überhaupt was? :)
 

ComFreek

Mod | @comfreek
Moderator
Kannst du nicht einfach in PHP auf den leeren String prüfen und dann eben NULL generieren?

Sicher ist das auch in SQL möglich mit IF-Anweisungen. Tendenziell würde ich die Validierung aber hier der Applikationslogik, d.h. PHP, überlassen.
 

EuroCent

Erfahrenes Mitglied
Hallo @ComFreek genauso hab Ich das jetzt getan. :)
Da es hier nur um 4 Felder geht, prüfe Ich einfach auf einen Leeren String/Inhalt und setze ihn dann auf Null :)
 

Yaslaw

n/a
Moderator
Du schreibst von PHP und postest SQL.
Für was für DB brauchst du das SQL? Bei MySQL gibt es zum Beispiel die Funktion NULLIF(), die genau das macht

SQL:
NULLIF(my_var, '')
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge