Willkommen ~Gast!
Registrieren || Einloggen || Hilfe/FAQ || Staff
Probleme mit der Registrierung im Forum? Melde dich unter registerEin Bild.
Autor Beitrag
000
16.01.2009, 19:37
cleric



Einen wunderschönen guten Abend!

Ich habe eine Tabelle "bonrechnung" in einer Datenbank, in die ich über PHP etwas eintragen möcht'.

Folgendes funktioniert:
Quellcode:mysql_query(INSERT INTO bonrechnung (Mitglied, Datum, weiss, rot, schwarz, schwarzpreis) VALUES (13, '2009-1-1', 1, 2, 3, '3.40'));
Nu' möcht ich meinen Code verschönern mit folgender Syntax:
Quellcode:INSERT INTO bonrechnung (Mitglied, Datum, weiss, rot, schwarz, schwarzpreis) VALUES (Mitglied = 13, Datum = '2009-1-1', weiss = 1, rot = 2, schwarz = 3, schwarzpreis = '3.40')
Das wird auch eingetragen, aber alle Datensätze sind leer, sogar die, bei denen die Spalte auf 'not null' gestellt sind. Das Datum ist 0000-00-00.

Die Syntax müsste so stimmen, zumindest hat sie vorhin funktioniert (dann hab ich irgendwas geändert, glaub eine Spalte hinzugefügt, und nun funktioniert's nicht mehr, aber ich weiss nicht mehr was genau ich alles geändert hab, das ist das Problem).
Alles in ' zu setzen macht auch keinen Unterschied.

Weiss jemand was dazu führt, dass mySQL alle Values als leer nimmt?

achja, und Fehler abfangen hat auch nichts gebracht, gibt keinen Fehler.

--

Der Optimist glaubt, dass wir in der Besten aller Welten leben.
Der Pessimist fürchtet, dass dies stimmt.

ehemals epidemic.


Dieser Beitrag wurde am 16.01.2009 um 19:45 von cleric bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche
001
16.01.2009, 19:51
Bluthund



Laut MySQL-Referenz mischst du da Insert-Typ1 mit Insert-Typ2 (explizites Benennen der Spalten per SET). Dass das funktioniert liegt mit Sicherheit daran, dass Ausdrücke erlaubt sind und da ist = aber nunmal der Vergleichsoperator laut SQL-Syntax. Eine implizite Umwandlung der Ergebnisse (in allen Fällen false) könnte deine _leeren_ Spalten erklären (leer ist nicht zwingend NULL, je nach Darstellung des Clients). NOT NULL bringt auch nix wenn DEFAULT gesetzt ist.

Mir erschließt sich btw nicht warum dein zweites Query schöner sein soll. Redundanter ja, aber schöner?!

Das, was du sicherlich möchtest, ist:
Quellcode:INSERT INTO bonrechnung SET Mitglied = 13, Datum = '2009-1-1', weiss = 1, rot = 2, schwarz = 3, schwarzpreis = '3.40';

--

The C language combines all the power of assembly language with all the ease-of-use of assembly language.
"humorig is n blödwort :>" by -CarniGGeLjumpR-


Dieser Beitrag wurde am 16.01.2009 um 20:28 von Bluthund bearbeitet.
zum Seitenanfang zum Seitenende Profil || Suche