13. august 2001 - 12:55Der er
8 kommentarer og 1 løsning
[MySQL] UPDATE problem.
Hejsa,
Jeg har følgende problem: Jeg bygger en streng op i en variabel som indeholder forskellige sæt af felter og variabler. Et eksempel kan være en variabel der indeholder : Name = \"$Name\", Surname = \"$Surname\" Variablen kalder jeg så updatelist og sætter den ind i en UPDATE query. Mit problem er bare at posten i tabellen kommer til at indeholde selve navnet på variablen og ikke variablernes indhold. Dvs. at i Name kommer der til at stå \"$Name\", hvor er der måske skulle ha\' stået Jens. Jeg har prøvet manuelt at skrive de forskellige update-sets ind istedet for $updatelist, og så virker det uden problemer...
$updateresult = mysql_query(\"UPDATE Userlist SET \" . $updatelist . \" WHERE UserID = \'$UserID\'\");
Her er noget af scriptet der genererer $updatelist: Denne køres i en while løkke, hvor den løber et array igennem. Har prøvet to forskellige med samme resultat: $updatelist .= current($felt) . \" = \\\"$\" . current($felt) . \"\\\", \"; $updatelist .= current($felt) . \" = \'$\" . current($felt) . \"\', \";
Og hvis jeg echo\'er $updatelist bliver den henholdsvis(efter en substr($updatelist, 0, -2): Name = \"$Name\", Surname = \"$Surname\" og Name = \'$Name\', Surname = \'$Surname\'
Dit problem er, at en variabels indhold indsættes på det tidspunkt din assignment udføres. Du skaber et variabel navn og håber derefter at dette navn udskiftes med variablens indhold senere (i din mysql_query() funktion). Det sker bare ikke.
Hmm... Jeg har aldrig prøvet at bruge eval() i PHP før, så jeg formodede at det fungerede som Javascripts. Det gør den åbenbart ikke, så du kan nok ikke gøre det jeg har foreslået. Brug erik\'s eksempel istedet.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.