#1 23. Mai 2011 Mysql Update Befehl Hallo, ich habe folgenden Update Befehl PHP: $Updaten = mysql_query ( "UPDATE Vertrag SET Vertragsnummer = " . $_SESSION [ "Vertragsnummer" ]. " WHERE VertragID=" . $_SESSION [ "VertragID" ]. "" ); Der Funktioniert super, nur wenn ich nun mehrer Sachen updaten will, also zB PHP: $Updaten = mysql_query ( "UPDATE Vertrag SET Vertragsnummer = " . $_SESSION [ "Vertragsnummer" ]. ",Betreff = " . $_SESSION [ "Betreff" ]. " WHERE VertragID=" . $_SESSION [ "VertragID" ]. "" ); Funktioniert es nicht mehr. Als Fehler bekomme ich Code: 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 'asd WHERE VertragID=1407' at line 1 Wenn ich das richtig verstehe, heist es doch so viel wie, das der Befehl fehlerhaft ist, ich finde aber irgendwie keinen Fehler + Multi-Zitat Zitieren
#2 23. Mai 2011 AW: Mysql Update Befehl betreff wird wohl ein string sein Code: ,Betreff = \"".$_SESSION["Betreff"]."\" + Multi-Zitat Zitieren
#3 23. Mai 2011 AW: Mysql Update Befehl Vertragsnummer und VertragId sind INT, daher stört sich Mysql nicht dran, die weiteren Daten sind aber Strings. Das (int) sorgt dafür das die Variable immer INT ist und niemals etwas anderes. Betreff ist in Hochkommas gepackt und mit mysql_real_escape_string abgesichert, stichwort: [G]SQL injection[/G] PHP: $Updaten = mysql_query ( "UPDATE Vertrag SET Vertragsnummer = '" .((int) $_SESSION [ "Vertragsnummer" ]). "',Betreff = '" . mysql_real_escape_string ( $_SESSION [ "Betreff" ]). "' WHERE VertragID='" .((int) $_SESSION [ "VertragID" ]). "'" ); + Multi-Zitat Zitieren
#4 23. Mai 2011 AW: Mysql Update Befehl oh mit (int) in nem ausruck wär ich vorsichtig, nicht dass (int)$_ ... den rest der verkettung castet. sonst hast du am ende "UPDATE Vertrag SET Vertragsnummer = 1234" oder so was in der art ^^ also ne klammer drum und auf nummer sicher gehen: ((int)$_ ...) ------ mysql_query war gestern, heute verwendet man PDO oder MySQLi und die entsprechenden "bind" methoden. ich kanns nur jedem raten! PHP: PDO - Manual PHP: Mysqli - Manual + Multi-Zitat Zitieren
#5 23. Mai 2011 AW: Mysql Update Befehl Ok danke Leute, habt mir echt geholfen. @Murdoc Danke ich werde mir das mal anschauen + Multi-Zitat Zitieren
#6 23. Mai 2011 AW: Mysql Update Befehl Das sollte eigentlich nicht passieren, da die Cast-Operatoren in der Operatorenrangfolge höher stehen als der Verkettungsoperator: PHP: Operator-Rangfolge - Manual + Multi-Zitat Zitieren
#7 23. Mai 2011 AW: Mysql Update Befehl ja ich war mit nicht ganz sicher, ich setz bei sowas gerne mal zuviel klammern als zu wenig + Multi-Zitat Zitieren