Avatar billede JosefineJ Nybegynder
16. juni 2011 - 10:16 Der er 10 kommentarer og
1 løsning

You have an error in your SQL syntax ??

Hej Eksperter

Jeg får denne fejl når jeg kører mit SQL

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 'Letløbende 3 hjulet skubbevogn.
', pris = '4000' WHERE id = 3' at line 1

Koden ser således ud:

//Variabler der indeholder de informationer der skal bruges
$id = $_POST['udstyr_id'];
$kategori = $_POST['kategori'];
$navn = $_POST['udstyr_navn'];
$beskrivelse = $_POST['udstyr_beskrivelse'];
$pris = $_POST['udstyr_pris'];
           
//Updater udstyret i databasen udstyr
$sql = "UPDATE udstyr SET kategori = '".$kategori."', navn = '".$navn."', beskrivelse = '".$beskrivelse."', pris = '".$pris."' WHERE id = ".$id;
$sqlQuery = mysqli_query($db,$sql);
if(!$sqlQuery){
echo "Fejl i forespørgsel: ".mysqli_error($db);
}else{
echo "indhold gemt";

};//Variabler der indeholder de informationer der skal bruges
$id = $_POST['udstyr_id'];
$kategori = $_POST['kategori'];
$navn = $_POST['udstyr_navn'];
$beskrivelse = $_POST['udstyr_beskrivelse'];
$pris = $_POST['udstyr_pris'];
           
//Updater udstyret i databasen udstyr
$sql = "UPDATE udstyr SET kategori = '".$kategori."', navn = '".$navn."', beskrivelse = '".$beskrivelse."', pris = '".$pris."' WHERE id = ".$id;
$sqlQuery = mysqli_query($db,$sql);
if(!$sqlQuery){
echo "Fejl i forespørgsel: ".mysqli_error($db);
}else{
echo "indhold gemt";

};

Nogen der har en ide om hvad jeg har gjort galt ?
Avatar billede JosefineJ Nybegynder
16. juni 2011 - 10:17 #1
Hov , kan se at koden er kommet ind 2 gange .. Den er der selvfølgelig kun en gang i mit script ;)
Avatar billede erikjacobsen Ekspert
16. juni 2011 - 10:49 #2
Prøv at udskrive $sql, så du kan se hvad SQL-sætningen faktisk er.
Avatar billede JosefineJ Nybegynder
16. juni 2011 - 10:58 #3
Når jeg udskriver $sql skriver den
UPDATE udstyr SET kategori = 'Vogne', navn = 'BagBoy SC 525', beskrivelse = ''Letløbende 3 hjulet skubbevogn.
', pris = '4000' WHERE id = 3

- hvilket vel egentlig er rigtigt nok ?

Har prøvet at fjerne de der ' , uden resultat ...
Avatar billede erikjacobsen Ekspert
16. juni 2011 - 11:02 #4
Den SQL du viser her har 2 '-ere foran Letløbende. Det du'r ikke.
Avatar billede JosefineJ Nybegynder
16. juni 2011 - 11:07 #5
Har prøvet at fjerne det så koden ser således ud:

//Updater udstyret i databasen udstyr
$sql = "UPDATE udstyr SET kategori = ".$kategori.", navn = ".$navn.", beskrivelse = ".$beskrivelse.", pris = ".$pris." WHERE id = ".$id;
$sqlQuery = mysqli_query($db,$sql);
if(!$sqlQuery){
echo "Fejl i forespørgsel: ".mysqli_error($db);
}else{
echo "indhold gemt";

};

Og SQL ser således ud:

UPDATE udstyr SET kategori = Vogne, navn = BagBoy, beskrivelse = Letløbende 3 hjulet skubbevogn.
, pris = 4000 WHERE id = 3

Samme fejl ..
Avatar billede erikjacobsen Ekspert
16. juni 2011 - 11:09 #6
Ja, men nu har du ingen '....' rundt om din tekst med Letløbende.
Avatar billede erikjacobsen Ekspert
16. juni 2011 - 11:10 #7
Og heller ikke Vogne og Bagboy.  Øhm, prøver du dig bare frem? Ved du ikke hvad du laver?
16. juni 2011 - 11:13 #8
Jeg vil gætte på at denne $sql virker (men ikke testet):

$sql = "UPDATE udstyr SET kategori = '$kategori', navn = '$navn', beskrivelse = '$beskrivelse', pris = '$pris' WHERE id = $id";
16. juni 2011 - 11:17 #9
For det første skal forespørgsels sætningen begynde og ende med " (eller med ').

Så er det således, at når forespørgsels sætningen er imellem to ", så oversætter systemet selv variabelerne.  Det er så ikke nødvendigt at skrive " . $var . " o.s.v., $var virker direkte.

Så for det tredje skal de variabler der indeholder tekststrenge stå mellem to ', og mysql accepterer også variabler der indeholder tal der står mellem to ', så jeg placerer normalt alle variablerne mellem '.
Avatar billede JosefineJ Nybegynder
16. juni 2011 - 11:18 #10
Christian_Belgien - mange tak for hjælpen , nu virker det :)
16. juni 2011 - 12:08 #11
Ok, så er her et svar til at acceptere.
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester