MySql- befehl mit Variablen

speedyggg

Erfahrenes Mitglied
Hallo,
ich habe folgendes Problem mit der Syntax. Wenn ich wie folgt ein INSERT machen will:

$sQuery = 'INSERT INTO ausgang '
. 'set veaus = "' . mysql_real_escape_string($verlstk) . '", '
. 'dataus = "' . $date1x .'", '
. 'time1 = "' . $time1x .'", '
. '$dbvk' = "' . $vkreal .'", '
. 'allid = "' . mysql_real_escape_string($oripn) . '"';

Wie muss die Syntax sein wenn ich den Wert der Variable "$dbvk" nutzen will. :confused:

Für Hilfe wäre ich sehr dankbar.
cu
Speedyggg
 
Hi,
funktioniert der Query nicht oder willst du nur wissen, wie du auf den Wert zugreifen kannst?

Ich schreibs mal für mich syntaktisch richtig. Ich benutze " statt ' und ' statt " gg:

$sQuery = "INSERT INTO ausgang SET veaus='".mysql_real_escape_string($verlstk)."', dataus='".$date1x."', time1='".$time1x."', ".$dbvk."='".$vkreal."', allid='".mysql_real_escape_string($oripn)."'";

P.S.: Wenn du viel mit ' und " schreibst, benutz am besten die Schriftart "Courier New", da kann man besser unterscheiden...

Grüße
 
Es gibt auch die Möglichkeit, den Code beim posten in entsprechende Tags zu packen mit "code" in eckigen Klammern. Dann kann man's auch hier besser lesen.

Im übrigen bin ich auch nicht sicher, was eigentlich die Frage ist. Wenn in der Variable $dbvk ein Spaltenname der Datenbanktabelle steht, kannst du die Variable natürlich in der Abfrage benutzen. Sie darf dann allerding nicht in Anführungszeichen stehen. Beispiel:

PHP:
$dbvk = 'einzelpreis';
$vkreal = '5.80';

$sQuery = " (...), $dbvk = '".$vkreal."' (...) ";


meinst du das?

Dann steht nachher in der Abfrage: " (...) einzelpreis = '5.80' (...)
wobei du natürlich für Zahlen die Anführungszeichen auch weglassen kannst.

Tipp: lass dir mit echo die Zeichenkette $sQuery auf der Seite testweise ausgeben, dann siehst du leichter, ob irgendwas fehlerhaft ist (z.B. fehlende Anführungszeichen oder Klammern).

Gruß Marian
 
Hallo,

danke erstmal für die Tipps. Ich habe die Syntax mal so ausprobiert wie beschrieben und schon die ganze Geschichte. Soweit schon mal ok, aber warum das bei mir nicht gefunzt hat bleibt mir trotzdem ein Rätsel. Gibts da ne einfache Regel mit den " und ' . Irgendwie komme ich nicht dahinter.


Trotzdem vielen Dank an euch.

Speedyggg
 
die einfache Regel lautet:
Werte für Zeichenketten und Datumsfelder (DATE, TIME, DATETIME) müssen in einfache Anführungszeichen eingeschlossen werden, Werte für Zahlen können in Anführungszeichen eingeschlossen werden. Bei der Abfrage solltest du innerhalb der Abfrage immer die einfachen Anführungszeichen verwenden. Feldnamen (Spaltennamen) immer ohne Anführungszeichen und darauf achten, dass die Felder möglichst aus einem Wort bestehen, sonst müssen sie in sogenannte Backticks (`) eingeschlossen werden.

Gruß Marian
 
Zurück