Probleme Datensatz in MySql - DB zu schreiben

SuperSonik

Erfahrenes Mitglied
Hi Leute,
wie oben schon gesagt habe ich ein Problem einen Datensatz eine MySql - DB zu schreiben.

Ich hab in der Datenbank folgende Tabelle angelegt:
Feld Typ Null Standard Verweise Kommentare MIME
1 float Ja NULL
2 float Ja NULL
3 float Ja NULL
4 float Ja NULL
5 float Ja NULL
6 float Ja NULL
7 float Ja NULL
8 float Ja NULL
9 float Ja NULL
10 float Ja NULL
11 float Ja NULL
time datetime Ja 0000-00-00 00:00:00

Und daszu wollte ich mit folgendem Befehl Daten einfügen:

$sqlins = "INSERT INTO $tabellenname (1,2,3,4,5,6,7,8,9,10,11,time)
VALUES ($id_1, $id_2, $id_3, $id_4, $id_5, $id_6, $id_7, $id_8, $id_9, $id_10, $id_11, $timest);" ;

mysql_query($sqlins,$verbindung) or die("Fehler:".mysql_error($verbindung));

Aber ich bekomm' immer die Fehlermeldung:

Fehler:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '1,2,3,4,5,6,7,8,9,10,11,time) VALUES (0, 0, 0, 0, 0, 0, 0, 0, 0, 20.2, 21.59, ' at line 1

Hat jemand ne Idee? :(
Gruß,

SuperSonik
 
Danke! Das ist schonmal gut.

Allerdings ändert sich die Fehlermeldung nicht wenn ich die Spalte in der DB
in timesta umbennene, und den SQL-Befehl entsprechend auch.
 
Es betrifft ja nicht nur die Spalte time. (Siehe mein vorherigen Beitrag)

Sonst würde ich dir empfehlen, eine andere Schreibweise der INSERT INTO-Klausel zu wählen:
PHP:
<?php

	$query = "
		INSERT INTO
		        `tabelle`
		  SET
		        `spalte-1` = 'Wert 1',
		        `spalte-2` = 'Wert 2',
		        …
		        `spalte-n` = 'Wert n'
		";

?>
 
Irgendwie gibts noch Probleme mit der letzten Spalte.
Die ist ja vom Typ DATETIME.
Ich hab den Wert so zusammengesetzt:

$timest = $werte[2]."-".$werte[3]."-".$werte[4]." ".$werte[5].":".$werte[6].":".$werte[7];

Als Ausgabe mit

echo"$timest<br>";

erhalte ich z.B. : 2005-02-21 13:00:00
 
Gumbo hat gesagt.:
Es betrifft ja nicht nur die Spalte time. (Siehe mein vorherigen Beitrag)

Sonst würde ich dir empfehlen, eine andere Schreibweise der INSERT INTO-Klausel zu wählen:
PHP:
<?php

	$query = "
		INSERT INTO
		        `tabelle`
		  SET
		        `spalte-1` = 'Wert 1',
		        `spalte-2` = 'Wert 2',
		        …
		        `spalte-n` = 'Wert n'
		";

?>


Die Syntax mit dem SET hab ich auch schon probiert.
Das macht's nicht besser.
 
Woher erhälst du denn die Werte der $werte-Variable? Und was möchtest du mit damit machen?
 
Ceraph hat gesagt.:
Mach das mal bitte:
PHP:
mysql_query($sqlins,$verbindung) or die("Fehler:".mysql_error($verbindung)."<br>".$sqlins);

Dabei bekommen ich als Ausgabe:

Fehler:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '13:15:00)' at line 2
INSERT INTO krafft4 (pid1,pid2,pid3,pid4,pid5,pid6,pid7,pid8,pid9,pid10,pid11,timesta) VALUES (0, 0, 0, 0, 0, 0, 0, 0, 0, 20.2, 21.59, 2005-02-21 13:15:00);
 
Gumbo hat gesagt.:
Woher erhälst du denn die Werte der $werte-Variable? Und was möchtest du mit damit machen?


Die erhallte ich so:

$file = "D:\ftp\\$test\\$file_name";
$zeilen = file($file);
$zahl = sizeof($zeilen);
$name = $_SESSION["name"];
$id = $_SESSION["kdnr"];
$tabellenname = "$name";
$tabellenname = strtolower($tabellenname);
$tabellenname = $tabellenname.$id;

$zeilen[$i] =str_replace("0x20",";","$zeilen[$i]");
$zeilen[$i] =str_replace("\t",";","$zeilen[$i]");
$zeilen[$i] =str_replace("'",";","$zeilen[$i]");
$zeilen[$i] =str_replace(".",";","$zeilen[$i]");
$zeilen[$i] =str_replace(";;",";","$zeilen[$i]");

$chars =";";
$werte = explode(";","$zeilen[$i]");



Die $werte würde ich gerne in die Datenbank schreiben.
Ich lese die aus ner Datei.
 
Zurück