25. april 2001 - 02:50
Der er
25 kommentarer og 1 løsning
mySQL probs
Lidt nattearbejde til eksperterne: Hvad er der galt i disse linier? <?php if (\"$submit == Ret\") { mysql_query(\"UPDATE db_soeg SET dlink = $dlink WHERE URL = \'$URL\';\") or die(mysql_error()); echo \"<font face=\\\"verdana, arial, sans-serif\\\" size=\\\"1\\\">Retter $URL dlink til <b>$dlink</b></font>\"; } ?>
Annonceindlæg tema
25. april 2001 - 03:19
#1
hvilke fejl får du ??
25. april 2001 - 03:27
#2
You have an error in your SQL syntax near \'WHERE URL = \'\';\' at line 1
25. april 2001 - 03:31
#3
Formen der sender data til scriptet:
<form name=\"ret\" method=\"POST\" action=\"actions.php\">
<input type=\"hidden\" name=\"submit\" value=\"Ret\">
<input type=\"text\" name=\"URL\" maxlength=\"50\" value=\"
http://www.test.dk\"><br> <input type=\"text\" name=\"dlink\" maxlength=\"3\" size=\"3\" value=\"7\"><br>
<input type=\"submit\" name=\"submit\" value=\"Ret\">
</form>
Måske kan dette hjælpe?
25. april 2001 - 03:51
#4
Skal der ikke være et ; efter WHERE URL = \'$URL\';\") Altså så der står WHERE URL = \'$URL\';\"); Ikke testet.... Tupsy!!
25. april 2001 - 04:01
#5
tupsy -> Nej, semikolon\'et kommer efter \"or die(mysql_error());\"
25. april 2001 - 04:09
#6
Prøv at ændre : db_soeg SET dlink = $dlink til db_soeg SET dlink = \'$dlink\' Tupsy!!
25. april 2001 - 04:14
#7
Tupsy -> Det skal siges at dlink er en integer
25. april 2001 - 04:24
#8
Så står jeg nok af.. Ved faktisk ikke engang hvad en integer er??? Tupsy!!
25. april 2001 - 04:27
#9
Det er såmænd bare det engelske ord for hel-tal :)
25. april 2001 - 04:33
#10
Det kunne du jo da bare have skrevet.. :-) He he.. Snak dog dansk... :-) Men, hvorfor har du egentlig et ; her \'$URL\';\") imellem \'og\"????? Tupsy!!
25. april 2001 - 04:33
#11
Sidder på arbejdet, derfor kan jeg ikke teste om mine ideer virker inden jeg kommer med dem.. Sorry.. Tupsy!!
25. april 2001 - 04:37
#12
Tupsy -> mht. mit sprog: Jeg snakker engelsk når det passer i mit programmeringssprog. Basta! :) mht. semikolon: Det er fordi den *skal* være der. God arbejdslyst :)
25. april 2001 - 04:41
#13
Nå nå, men så skidt da.. Snak du båre \"Benny\".. :-) Og takker.. Held og lykke med dig script... Tupsy!!
25. april 2001 - 06:37
#14
Der skal da ikke være et ; i WHERE URL = \'$URL\';\") !!! men det har du sikkert fundet ud af.
25. april 2001 - 07:25
#15
Er du sikker på, at $dlink har en værdi? Prøv at udskrive din query inden du udfører den: $sql = \"UPDATE db_soeg SET dlink = $dlink WHERE URL = \'$URL\';\"; echo $sql; mysql_query($sql) or die(mysql_error()); Hvis den ikke er udfyldt kan det skyldes 1) at du kører med \"register_globals = off\" og at du så har glemt at indføre denne linie et sted: $dlink = $HTTP_POST_VARS[\"dlink\"]; 2) at du faktisk kører med \"register_globals = on\", men at denne stump kode ligger inde i en funktion og du har glemt at deklarere $dlink som en \"global\"
25. april 2001 - 07:27
#16
Jeg mener i øvrigt at machomann har ret. Der må ikke (eller behøver ikke?) at være et \";\" inde i din sql-sætning.
25. april 2001 - 07:32
#17
Alvion -> Den vil kommer med en anden fejl hvis den ikke selecter noget. Så er der altså noget i $dlink. Problemmet er helt klart at der er et ; for meget.
25. april 2001 - 07:35
#18
if (\"$submit == Ret\") rettes til if ($submit == \'Ret\')
25. april 2001 - 10:16
#19
machomann >> You have an error in your SQL syntax near \'WHERE URL = \'\';\' at line 1 betyder at der er en syntaksfejl i sætningen umiddelbart før \'WHERE URL...\' Den vil typisk komme, hvis nu der står \"UPDATE db_soeg SET dlink = WHERE ...\" som der vil stå, hvis $dlink ikke indeholder noget. Derfor: abruscato >> Prøv at udskrive din SQL
25. april 2001 - 15:42
#20
Følgende kode virker :) <?php $dlink = $HTTP_POST_VARS[\"dlink\"]; if (\"$submit == Ret\") { mysql_query(\"UPDATE database SET dlink = $dlink WHERE URL=\'$URL\';\"); } ?>
25. april 2001 - 15:45
#21
Det er stadig en fejl: if (\"$submit == Ret\") den giver altid true, som den står....
25. april 2001 - 15:51
#22
Dvs. at: erikjacobsen -> (\"$submit == Ret\") er lige så godt som ($submit == Ret\') machomann -> Jeg retter min påstand om at der *skal* være et semikolon i $dlink WHERE URL=\'$URL\'>>>;<<<<\"); - Til at det *kan* være der. Så har I også lært lidt idag :) Tak for svarene.
25. april 2001 - 15:52
#23
ericjacobsen -> Er du sikker på det?
25. april 2001 - 15:53
#24
nej det er ikke ligeså godt ab... Nu skal du lave $submit på samme måde som $dlink, men ellers sikrer min rettelse at der kun kommer noget i databasen, når der bliver trykket på knappen.
25. april 2001 - 16:07
#25
DOH! erikjacobsen -> Du har ret.... Ikke nogen dårlig ting at vide :)
26. april 2001 - 08:13
#26
:)
Computerworld tilbyder specialiserede kurser i database-management