INSERT trägt nur Nullen in Datenbank ein
Tobias Hager
- php
0 Tim M.0 Tim0 Rouven
0 Tobias Hager0 Sven Rautenberg
0 shn0 Der Martin
- datenbank
0 Rouven
Hallo!
Ich habe folgendes Problem: Ich möchte in meiner Datenbank einen neuen Eintrag anlegen:
$result2 = mysql_query("INSERT INTO dienstplan5280 (jahr,monat,tag)
VALUES ('datum[$i][2]','datum[$i][1]','datum[$i][0]')");
echo mysql_error();
Er erstellt nun die neuen Einträge übernimmt jedoch nicht die Daten aus den Variablen, sondern setzt alles auf Nullm OBWOHL ich die gewünschten Werte bekomme, wenn ich meine Variablen direkt vorher ausgeben lasse.
Fehler spuckt er mir auch keine aus.
Hat da jemand eine Idee?
Wäre sehr dankbar dafür!
Viele Grüße
Toby
Hallo Toby,
so wie ich das sehe fügst Du mit dem SQL-String die Variabeln als Text-Werte in den Datensatz ein. Du musst die Werte der Datumsvariable ja als Text in den String einfügen.
Versuche es mal hiermit:
strSQL = "INSERT INTO dienstplan5280 (jahr,monat,tag) VALUES ('" & datum[$i][2] & "','" & datum[$i][1] & "','" & datum[$i][0] & "')";
$result2 = mysql_query(strSQL);
Geklappt?
Gruß
Tim
Axo... und außerdem werden Daten (=Plural von Datum) zwischen # und nicht zwischen ' eingefügt. Und das ganze in dem folgenden Format:
#MM/DD/YY#
Gruß
Tim
Hello,
#MM/DD/YY#
hmh, das kenn ich auch, aber das ist mehr eine Eigenart von Microsoft-Systemen. MySQL ist generell sehr unempfindlich bei automatischem casten und nimmt sehr bereitwillig Daten als '-Strings an.
MfG
Rouven
Hallo Toby,
Versuche es mal hiermit:
strSQL = "INSERT INTO dienstplan5280 (jahr,monat,tag) VALUES ('" & datum[$i][2] & "','" & datum[$i][1] & "','" & datum[$i][0] & "')";
$result2 = mysql_query(strSQL);
Geklappt?
Gruß
Tim
Vielen Dank hat geklappt! :)
Moin!
so wie ich das sehe fügst Du mit dem SQL-String die Variabeln als Text-Werte in den Datensatz ein. Du musst die Werte der Datumsvariable ja als Text in den String einfügen.
Das ist bei MySQL egal - bzw. erlaubt MySQL nur Strings als Übergabe, lediglich Zahlen können auch ohne einfache Anführungszeichen übergeben werden - das ist allerdings nicht empfehlenswert, wenn man userdefinierte Zahlenwerte mit Escaping in den SQL-String einfügen muß.
Versuche es mal hiermit:
strSQL = "INSERT INTO dienstplan5280 (jahr,monat,tag) VALUES ('" & datum[$i][2] & "','" & datum[$i][1] & "','" & datum[$i][0] & "')";
Ganz schlechte Idee, wir haben hier PHP, kein VBScript. Der Stringverbindungsoperator ist kein &, sondern der . Punkt.
Außerdem hast du ebenso wie der OP vor "datum" das $-Zeichen vergessen. Eine Einstellung der Fehlernachricht mit error_reporting(E_ALL) hätte da sofort Notices ausgeworfen und dieses Problem simpel dokumentiert.
- Sven Rautenberg
Servus,
Hat da jemand eine Idee?
Nein, wir können nur raten, da wir weder wissen, welchen Inhalt deine Variablen, noch welchen Feldtyp deine Spalten haben. Du möchtest dir aber den Typ date anschauen.
Gruss
Patrick
Hi,
$result2 = mysql_query("INSERT INTO dienstplan5280 (jahr,monat,tag)
VALUES ('datum[$i][2]','datum[$i][1]','datum[$i][0]')");
möchtest du nicht eigentlich die Werte der Array-Variablen $datum[$i][] eintragen, anstatt der Strings 'datum[$i][0]'?
Er erstellt nun ...
Fehler spuckt er mir auch keine aus.
Er? Wer?
Und überhaupt: Warum werden eigentlich Datenbank-Probleme immer wieder unter dem Topic "PHP" anstatt "DATENBANK" eingeordnet?
Gute Nacht,
Martin
Hello,
möchtest du nicht eigentlich die Werte der Array-Variablen $datum[$i][] eintragen, anstatt der Strings 'datum[$i][0]'?
Und überhaupt: Warum werden eigentlich Datenbank-Probleme immer wieder unter dem Topic "PHP" anstatt "DATENBANK" eingeordnet?
hehe, vielleicht aus weiser Voraussicht? *g*
MfG
Rouven