AlXz Skrevet 20. november 2005 Del 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 Lenke til kommentar
diskvask Skrevet 20. november 2005 Del Skrevet 20. november 2005 Felt som er int (heltall) kan ikke settes inn som en streng, dvs. de skal ikke ha ' rundt seg. Lenke til kommentar
???????? Skrevet 20. november 2005 Del 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 ???????? Lenke til kommentar
AlXz Skrevet 20. november 2005 Forfatter Del 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 Lenke til kommentar
???????? Skrevet 20. november 2005 Del 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. Lenke til kommentar
AlXz Skrevet 20. november 2005 Forfatter Del 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 Lenke til kommentar
???????? Skrevet 20. november 2005 Del 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! Lenke til kommentar
missiongul Skrevet 20. november 2005 Del Skrevet 20. november 2005 Tror det er TEXT og VIEW som ikke kan brukes Lenke til kommentar
AlXz Skrevet 20. november 2005 Forfatter Del 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 Lenke til kommentar
???????? Skrevet 20. november 2005 Del Skrevet 20. november 2005 Vis tabellstrukturene dine, med fremmednøkler og linkede tabeller. Lenke til kommentar
AlXz Skrevet 20. november 2005 Forfatter Del 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 Lenke til kommentar
Lurifaksen Skrevet 21. november 2005 Del 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 Lenke til kommentar
AlXz Skrevet 21. november 2005 Forfatter Del Skrevet 21. november 2005 Fordi det ikke er noen verdi der... Lenke til kommentar
kakkle Skrevet 21. november 2005 Del 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 Lenke til kommentar
Lurifaksen Skrevet 21. november 2005 Del 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... Lenke til kommentar
AlXz Skrevet 24. november 2005 Forfatter Del 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 Lenke til kommentar
kakkle Skrevet 24. november 2005 Del 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... Lenke til kommentar
AlXz Skrevet 24. november 2005 Forfatter Del 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`)) Lenke til kommentar
Ueland Skrevet 24. november 2005 Del 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: Lenke til kommentar
AlXz Skrevet 24. november 2005 Forfatter Del 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 Lenke til kommentar
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å