Schreibweise Variable in Insert Into

julia29

Erfahrenes Mitglied
Hallo,

möchte in mein Insert Into zwei Variable einbinden, komme nicht auf die korrekte Schreibweise.

PHP:
$sql = "INSERT INTO ( \"".$kat01."_db_data".$kat02."\") SET titel = '$titel',
										 feld02 = '$ID',
										 feld03 = '$Name',
										 feld04 = '$Vorname',
										 feld05 = '$Ort'
										 ";

Wie müßte ich es richtig schreiben?
Danke
mfg
Julia
 
Hallo Zod,

ging bisher schon, nur wenn ich die beiden Variablen
$kat01 und $kat02
mit einbinde, mag er nicht mehr.
Dies liegt sicher an der nicht ganz korrekten Schreibweise. Wie müßte ich das mit richtig gesetzten " " schreiben?
 
Hallo Zod,

ging bisher schon, nur wenn ich die beiden Variablen
$kat01 und $kat02
mit einbinde, mag er nicht mehr.
Dies liegt sicher an der nicht ganz korrekten Schreibweise. Wie müßte ich das mit richtig gesetzten " " schreiben?

Also in meiner Schreibweise würde es ca. so aussehen:

PHP:
$sql = "INSERT INTO `".$kat01."_db_data".$kat02."` 
			(titel, feld02, feld03, feld04, feld05)
			VALUES(
				'".$ID."', 
				'".$Name."', 
				'".$Vorname."', 
				'".$Ort."'
			)";

Ob es, wie ich es getan habe, sinnvoll ist trotz doppelter Anführungszeichen für das einfügen der Variablen aus dem ganzen 'rauszuspringen' sollte nicht zur Debatte stehen. Insofern die columns existieren und die Variablen gesetzt sind sollte das ganze so aber funktionieren.
 
Zuletzt bearbeitet:
Es gibt einige verschiedene Schreibweisen... http://dev.mysql.com/doc/refman/5.0/en/insert.html

Zumeinen die die deinem Code sehr ähnlich sieht:
PHP:
$sql = "INSERT INTO {$kat01}_db_data{$kat02} SET
                                         titel = '$titel',
                                         feld02 = '$ID',
                                         feld03 = '$Name',
                                         feld04 = '$Vorname',
                                         feld05 = '$Ort'
                                         ";
Falsch hattest du hier die Klammern um die Datenbank.

Die andere wurde hier auch schon gepostet.


Ich persöhnlich mag die Schreibweise mit SET `cloum` = 'var' lieber, da Sie einfacher zu lesen ist. Wenn man mehr als einen Datensatz auf einmal einfügt, bleibt natürlich nur LordDestros methode.
 
Zuletzt bearbeitet:
klappt leider auch nicht
ob ich nun ( ' ) oder ( ` ) nehme, es läuft ohne Fehlermeldung durch, doch die Datenbank bleibt leer.
Gibt es noch eine andere Variante?
 
hier nun meine letzten drei Versionen:
PHP:
<?php

// Ursprung mit manueller Anpassung im Script
$sql = "INSERT INTO 12_db_data24 SET titel = '$titel', 
                                         feld02 = '$ID', 
                                         feld03 = '$Name', 
                                         feld04 = '$Vorname', 
                                         feld05 = '$Ort' 

                                         ";  

// Ergebnis = alles fehlerfrei und Speicherung in DB
?>


Variante 2 über Variable
PHP:
<?php
// Parameter
$kat01 = "12";
$kat02 = "24";

$sql = "INSERT INTO ( \"".$kat01."_db_data".$kat02."\") SET titel = '$titel', 
                                         feld02 = '$ID', 
                                         feld03 = '$Name', 
                                         feld04 = '$Vorname', 
                                         feld05 = '$Ort' 
                                         ";  

// Ergebnis = keine Fehleranzeige, KEINE Speicherung in DB
?>


Variante 3 über Variable mit zus. Apostroph von LordDestros
PHP:
<?php
// Parameter
$kat01 = "12";
$kat02 = "24";

$sql = "INSERT INTO `".$kat01."_db_data".$kat02."` 
            (titel, feld02, feld03, feld04, feld05)
            VALUES(
                '".$titel."',
				'".$ID."', 
                '".$Name."', 
                '".$Vorname."', 
                '".$Ort."'
            )";  

// Ergebnis = keine Fehleranzeige, KEINE Speicherung in DB
?>


Variante 4 über Variable mit spitzer Klammer {} von Michel Engel
PHP:
<?php

// Parameter
$kat01 = "12";
$kat02 = "24";

$sql = "INSERT INTO {$kat01}_db_data{$kat02} SET 
								titel = '$titel',
								 feld02 = '$ID', 
                                 feld03 = '$Name', 
                                 feld04 = '$Vorname', 
                                 feld05 = '$Ort'
								";

// Ergebnis = keine Fehleranzeige, KEINE Speicherung in DB										 
?>

Gibt es noch eine andere Möglichkeit?
 
Ziemlich komische Sache mittlerweile.

Vielleicht ist der Denkfehler an einer ganz anderen Stelle. Ich vermute, dass du in der Tabellenstruktur ein UNIQUE oder PRIMARY KEY hast und bei der INSERT-Anweisung versuchst etwas einzufügen, das bereits vorhanden ist.

Prüfe das auch nochmal nach, weil die Querys sehen alle gut aus.
Zur Not auch mal $sql ausgeben lassen und nachlesen. Den Befehl in phpMyAdmin so ausführen, wie von PHP zusammengestellt.

Oder aus Spaß nach dem mysql_query() noch mysql_error() ausgeben lassen, vielleicht ergibt sich da ja was ;)
 
Zurück