Avatar billede greew Nybegynder
21. januar 2004 - 21:28 Der er 21 kommentarer og
1 løsning

Hvor er fejlen? PHP og MySQL

Jeg er i gang med at lave et script til at holde styr på min DVD samling.

Koden til scriptet er her: http://greew.dk/opret_film.phps

MySQL tabellen som det hele ligger i er her: http://greew.dk/tabel.jpg

Mit problem er, at jeg godt kan se variablerne i 'print'en men der kommer ikke noget data ind i tabellen, ergo må det næsten være SQL'en der er fejl med, right??
Er der nogen der kan se hvad problemet er??

På forhånd tak!!
Avatar billede riversen Nybegynder
21. januar 2004 - 21:30 #1
husk der skal '' omkring tekstfelter

dvs. hvis alle felter er text, så

$sql = "INSERT INTO film (navn, genre, hvor, text, set, imdb ) VALUES ('" . $navn . "', '" . $genre . "', '" . $hvor . "', '" . $text . "', '" . $set . "', '" . $imdb . "')";
Avatar billede riversen Nybegynder
21. januar 2004 - 21:31 #2
skal lige fjernes om set så passer det vist.
Avatar billede greew Nybegynder
21. januar 2004 - 21:31 #3
Jeg mener jeg har prøvet det før, men jeg prøver lige igen!!
Avatar billede riversen Nybegynder
21. januar 2004 - 21:32 #4
hvis ikke det hjælper er der i hvert fald flere fejl...

du kan prøve at udskrive $sql for at se om den er korrekt... og evt. også mysql_error() for at se sql fejlen.
Avatar billede greew Nybegynder
21. januar 2004 - 21:33 #5
mysql_error()... er det
$sql = "INSERT INTO film (navn, genre, hvor, text, set, imdb ) VALUES ('" . $navn . "', '" . $genre . "', '" . $hvor . "', '" . $text . "', '" . $set . "', '" . $imdb . "')" or mysql_error(); ???
Avatar billede phpwiz Nybegynder
21. januar 2004 - 21:34 #6
du skal også huske at du kan ikke kalde et felt for TEXT da det er et reserveret ord i MySQL
Avatar billede greew Nybegynder
21. januar 2004 - 21:35 #7
ahh... ok... det er nok fejlen så :)
Avatar billede riversen Nybegynder
21. januar 2004 - 21:35 #8
jeg mener echo mysql_error()
Avatar billede phpwiz Nybegynder
21. januar 2004 - 21:35 #9
også : SET
Avatar billede riversen Nybegynder
21. januar 2004 - 21:35 #10
fejl er OGSÅ at du skal have ' udenom tekstfelter
Avatar billede phpwiz Nybegynder
21. januar 2004 - 21:35 #11
Avatar billede schaefner Juniormester
21. januar 2004 - 21:36 #12
mysql_query($sql) or die(mysql_error());
Avatar billede schaefner Juniormester
21. januar 2004 - 21:37 #13
ramlev.dk:

The following symbols (from the table above) are disallowed by SQL-99 but allowed by MySQL as column/table names. This is because some of these names are very natural names and a lot of people have already used them.

* ACTION
* BIT
* DATE
* ENUM
* NO
* TEXT
* TIME
* TIMESTAMP
Avatar billede greew Nybegynder
21. januar 2004 - 21:38 #14
ok... jeg skynder mig at fjerne 'set' og 'text' fra tabellen og laver nogle andre ord.. det har lige første prioritet :)
Avatar billede phpwiz Nybegynder
21. januar 2004 - 21:40 #15
schaefner > sorry .. ;o)
Avatar billede greew Nybegynder
21. januar 2004 - 21:50 #16
schaefner og ramlev.dk > I to havde også ret med at jeg ikke måtte kalde felterne for 'text' og 'set'.. takker for det!! men hovedfejlen var de forkerte >'< og >"< som riversen påpegede... takker!!
Avatar billede schaefner Juniormester
21. januar 2004 - 21:54 #17
Jeg havde ikke så meget ret i noget, men det var kun SET der var reserveret ;)
Avatar billede riversen Nybegynder
21. januar 2004 - 21:57 #18
hva'... skulle jeg ha' alle point
Avatar billede greew Nybegynder
21. januar 2004 - 22:29 #19
kan man give point til flere forskellige ?? Det skal jeg da lige have lært så :)
Avatar billede sansalvador Nybegynder
22. januar 2004 - 11:34 #20
Du bruger mange tegn til dine indsættelser af variabler.. Du kan gøre det kortere, og mere overskueligt for dig selv, ved at gøre sådan her:

sql = "INSERT INTO film ('navn', 'genre', 'hvor', 'imdb') VALUES ('$navn', '$genre', '$hvor', '$imdb')";
Avatar billede greew Nybegynder
22. januar 2004 - 12:01 #21
sansalvador > mange tak.. er det så i tidligere php-versioner at man _skulle_ bruge '" . $variabel . "' osv ??
Avatar billede sansalvador Nybegynder
22. januar 2004 - 12:04 #22
Tror jeg ikke ..

Hvis du bruger

sql = 'INSERT INTO osv osv' - Så SKAL du bruge ' . $var . ' ..

Men ikke hvis du bruger "". Lidt underligt, men sådan er reglerne åbenbart.
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
Vi tilbyder markedets bedste kurser inden for webudvikling

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