AlXz Skrevet 20. november 2005 Skrevet 20. november 2005 (endret) $id = 'NULL'; $lanid = $lib->quote_smart($_POST['lanid']); $title = $lib->quote_smart($_POST['title']); $table = $lib->quote_smart($_POST['table']); $intro = $lib->quote_smart($_POST['intro']); $text = $lib->quote_smart($_POST['text']); $img = $lib->quote_smart($_POST['img']); $dateposted = '123'; $count = '0'; $query = "INSERT INTO news (lanid, title, table, intro, text, img, dateposted, count) VALUES ('2', 'TITTELFAEN', '1', 'INTRO TEXT', 'TEXT', 'BILDE URL', '20.11.2005', '1')"; Feilmelding: 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 'table, intro, text, img, dateposted, count) VALUES ('2', 'TITTELFAEN', '1', 'INT' at line 1 Her er database strukturen: EDIT: Dette er den nyeste! Endret 20. november 2005 av AlXz
diskvask Skrevet 20. november 2005 Skrevet 20. november 2005 Felt som er int (heltall) kan ikke settes inn som en streng, dvs. de skal ikke ha ' rundt seg.
???????? Skrevet 20. november 2005 Skrevet 20. november 2005 (endret) Det er ikke feil å sette inn int som en streng, det er bare tregere - for da må mysql konvertere. Problemet ditt er at du har et felt som heter table, og det går nok ikke fordi det er en "kommando". Edit: Du kan nok jukse deg rundt det ved å sett ´, ` eller ' rundt feltnavnet - men det er en dårlig løsning. Endret 20. november 2005 av ????????
AlXz Skrevet 20. november 2005 Forfatter Skrevet 20. november 2005 (endret) $query = "INSERT INTO news (lanid, title, view, intro, text, img, dateposted, count) VALUES ($lanid, '$title', '$view', '$intro', '$text', '$img', '$dateposted')";$query = (mysql_query($query) OR die(mysql_error())); 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 'aa'', '0', ''aa'', ''aa'', '''', '123')' at line 1 Endret 20. november 2005 av AlXz
???????? Skrevet 20. november 2005 Skrevet 20. november 2005 count er også navnet på en sql funksjon!! Dude, common! Legg til echo $query og post den her, slik at vi kan så query'en din.
AlXz Skrevet 20. november 2005 Forfatter Skrevet 20. november 2005 (endret) Hmm Her er den ihvertfall: //$id = 'NULL'; $lanid = $lib->quote_smart($_POST['lanid']); $title = $lib->quote_smart($_POST['title']); $view = $lib->quote_smart($_POST['table']); $intro = $lib->quote_smart($_POST['intro']); $text = $lib->quote_smart($_POST['text']); $img = $lib->quote_smart($_POST['img']); $dateposted = '123'; //$number = 0; $query = "INSERT INTO news (lanid, title, view, intro, text, img, dateposted) VALUES ($lanid, '$title', '$view', '$intro', '$text', '$img', '$dateposted')"; echo $query; echo "<br /><br />"; $query = (mysql_query($query) OR die(mysql_error())); Feilmld: INSERT INTO news (lanid, title, view, intro, text, img, dateposted) VALUES (1, ''aa'', '0', ''aa'', ''aa'', '''', '123') 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 'aa'', '0', ''aa'', ''aa'', '''', '123')' at line 1 EDIT: Glemte å si at jeg har bytta noen navn i tabellen! table er byttet til view, og count til number. Endret 20. november 2005 av AlXz
???????? Skrevet 20. november 2005 Skrevet 20. november 2005 Okay, hvis du ser på ''aa'' hva betyr dette, med tanke på at det er ' Det betyr at du oppretter og avslutter en ' Bruk mysql_real_escape_string() på variabelene dine!
missiongul Skrevet 20. november 2005 Skrevet 20. november 2005 Tror det er TEXT og VIEW som ikke kan brukes
AlXz Skrevet 20. november 2005 Forfatter Skrevet 20. november 2005 (endret) EDIT: Siden quote_smart kjører mysql_real_escape_string(), så tok jeg vekk igjen den... $lanid = $lib->quote_smart($_POST['lanid']); $title = $lib->quote_smart($_POST['title']); $viewmode = $lib->quote_smart($_POST['table']); $intro = $lib->quote_smart($_POST['intro']); $newstext = $lib->quote_smart($_POST['text']); $img = $lib->quote_smart($_POST['img']); $dateposted = $lib->quote_smart('123'); $query = "INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES ($lanid, '$title', '$viewmode', '$intro', '$newstext', '$img', '$dateposted')"; echo $query; echo "<br /><br />"; $query = (mysql_query($query) OR die(mysql_error())); Nå er table byttet til viewmode, count byttet til number og text byttet til newstext. INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES (1, ''aa'', '0', ''aa'', ''aa'', '''', '123') 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 'aa'', '0', ''aa'', ''aa'', '''', '123')' at line 1 Her er funksjonen quote_smart() om det hjelper noe... function quote_smart($value) { if (get_magic_quotes_gpc()) { $value = stripslashes($value); } if (!is_numeric($value)) { $value = "'" . mysql_real_escape_string($value) . "'"; } return $value; } Endret 20. november 2005 av AlXz
???????? Skrevet 20. november 2005 Skrevet 20. november 2005 Vis tabellstrukturene dine, med fremmednøkler og linkede tabeller.
AlXz Skrevet 20. november 2005 Forfatter Skrevet 20. november 2005 (endret) La til i innlegget over... EDIT: Stikker nå jeg..., takk for hjelp så langt Endret 20. november 2005 av AlXz
Lurifaksen Skrevet 21. november 2005 Skrevet 21. november 2005 (endret) INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES (1, ''aa'', '0', ''aa'', ''aa'', '''', '123') 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 'aa'', '0', ''aa'', ''aa'', '''', '123')' at line 1 5183311[/snapback] Hvorfor har du dobbelt opp med '''' i spørringen? Endret 21. november 2005 av Lurifaksen
AlXz Skrevet 21. november 2005 Forfatter Skrevet 21. november 2005 Fordi det ikke er noen verdi der...
kakkle Skrevet 21. november 2005 Skrevet 21. november 2005 (endret) Ser at funksjonen quote_smart legger til ' på starten og slutten av strengen. Prøv en av følgende: 1. fjern alle ' fra spørringen : $query = "INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES ($lanid, $title, $viewmode, $intro, $newstext, $img, $dateposted)"; Men det kan kanskje bli lkitt feil med tanke på den siste ($dateposted) som er et tall, og ikke får lagt til ' før og etter. 2. Endre til dette i funksjonen: $value = mysql_real_escape_string($value); EDIT: Ikke gjør begge tingene, da vil det bli feil, fordi da blir det ingen ' i det hele tatt. Jeg ville kanskje gått fo alternativ 2 Endret 21. november 2005 av kakkle
Lurifaksen Skrevet 21. november 2005 Skrevet 21. november 2005 Fordi det ikke er noen verdi der... 5184343[/snapback] (1, ''aa'', '0', ''aa'', ''aa'', '''', '123') Han bruker 2 stk single-quotes foran alle verdiene...
AlXz Skrevet 24. november 2005 Forfatter Skrevet 24. november 2005 (endret) INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES (0, 'TESTER', 0, 'TESTER', 'TESRET', 'TET', 123) Cannot add or update a child row: a foreign key constraint fails (`aleks_lan/news`, CONSTRAINT `news_ibfk_1` FOREIGN KEY (`id`) REFERENCES `lan` (`lanid`)) Hmm, rara greier..., noen som gidder lage php kode som opretter en tabell som kan inneholde den infoen i strukturen..? Endre navna og sånt så det går å bruke den. Eller noen andre forslag? EDIT: Noen som vet noe om primary key? Er det noe man skal ha eller ikke? Takk for alle svar Endret 24. november 2005 av AlXz
kakkle Skrevet 24. november 2005 Skrevet 24. november 2005 Du bør absolutt sette id til å være primær nøkkel Når det gjelder den feilmeldingen, så er det nok det at du setter lanid til å være 0, mens du ikke tillater null i det feltet i databasen (NOT NULL) Prøv å legge inn en annen verdi større enn 0 i feltet lanid...
AlXz Skrevet 24. november 2005 Forfatter Skrevet 24. november 2005 INSERT INTO news (lanid, title, viewmode, intro, newstext, img, dateposted) VALUES (1, 'hghgfh', 1, 'ghdgfh', 'gfdhghgfh', 'hjhjhj', 123) Cannot add or update a child row: a foreign key constraint fails (`aleks_lan/news`, CONSTRAINT `news_ibfk_1` FOREIGN KEY (`id`) REFERENCES `lan` (`lanid`))
Ueland Skrevet 24. november 2005 Skrevet 24. november 2005 Dette kunne minne om en InnoDB tabell, noe som generelt ikke brukes i vanlige webapplikasjoner. InnoDB rejects any INSERT or UPDATE operation that attempts to create a foreign key value in a child table without a matching candidate key value in the parent table. The action InnoDB takes for any UPDATE or DELETE operation that attempts to update or delete a candidate key value in the parent table that has some matching rows in the child table is dependent on the referential action specified using ON UPDATE and ON DETETE subclauses of the FOREIGN KEY clause. When the user attempts to delete or update a row from a parent table, and there are one or more matching rows in the child table, InnoDB supports five options regarding the action to be taken:
AlXz Skrevet 24. november 2005 Forfatter Skrevet 24. november 2005 (endret) Hmm, jeg lagde tabellen uten å velge noe fra den lista jeg.., men står noe om InnoDB i strukturen.. Endret 24. november 2005 av AlXz
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå