[MySQL] Fout bij uploaden data

Pagina: 1
Acties:

  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Hoi,

ik probeer een custom tabel voor mijn phpBB forum in mijn database te laden maar hij geeft telkens een error, wat doe ik fout? Ik probeer het volgende te uploaden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#
# TABLE: phpbb_posts_text2
#
DROP TABLE IF EXISTS phpbb_posts_text2;
CREATE TABLE phpbb_posts_text2(
    post_id mediumint(8) unsigned NOT NULL,
    bbcode_uid varchar(10) NOT NULL,
    post_subject varchar(60),
    post_text text,
    post_extra1 varchar(60),
    post_extra2 varchar(60),
    PRIMARY KEY (post_id)
);

#
# Table Data for phpbb_posts_text2
#

INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('3', '2e7e25c4ae', '', 'blaat', '', '');
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('4', '6456dec386', '', 'blaat', '', '');
(...)
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('3260', '03ef83b80f', '', 'blaat', '', '');
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('3261', '4774ff63b8', '', 'blaat', '', '');


en MySQL (3.23.52) geeft de volgende error:
code:
1
2
3
4
5
6
7
8
9
10
11
12
Fout

SQL-query : 

INSERT INTO phpbb_posts_text2( post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2 )
VALUES (
'0', '', NULL , NULL
)

MySQL retourneerde:

Column count doesn't match value count at row 1

IK zie het dus niet, jullie wel :X

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

6 kolommen, en je wilt 4 waarden invoegen. En dat kan niet... MySQL lijkt me vrij duidelijk in dit geval.

[ Voor 43% gewijzigd door gorgi_19 op 02-04-2003 15:02 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Kijk eens naar de values in de foutmelding. De foutmelding klopt namelijk gewoon bij de gegeven query. Daarnaast lijken mij die gegevens ook niet helmaal te kloppen. Probeer eens te achterhalen of deze fout al in je script zit of ontstaat bij het uploaden danwel uitvoeren van het bestand.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


Verwijderd

Zo moeilijk lijkt het me toch niet... "Column count doesn't match value count at row 1" oftewel: het aantal kolommen is niet gelijk aan het aantal waarden.... en inderdaad... je geeft 6 kolommen mee (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) en maar 4 waarden ('0', '', NULL , NULL).

  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Hoe bedoel je dat? Ik wil idd 6 kolommen (de laatste 2 heb ik erbij gestopt) maar ik geef toch op elke regel aan dat die laatste 2 leeg moeten zijn?
  • [i]..., 'blaat'[u], '', ''[/u]);[/i]
:?

Verwijderd

De fout die hij aangeeft heeft maar 4 waarden, deze regel zie ik niet in je script...

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

mosymuis schreef op 02 April 2003 @ 15:05:
Hoe bedoel je dat? Ik wil idd 6 kolommen (de laatste 2 heb ik erbij gestopt) maar ik geef toch op elke regel aan dat die laatste 2 leeg moeten zijn?
  • [i]..., 'blaat'[u], '', ''[/u]);[/i]
:?
SQL:
1
2
INSERT INTO phpbb_posts_text2( post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2 )
VALUES ('0', '', NULL , NULL)

Dit is de foutmelding.. Tel ze eens.....

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 23-08 10:39

Janoz

Moderator Devschuur®

!litemod

Een de foutmelding te zien ben je er blijkbaar 1 (of meerdere) vergeten.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
nee ik ook niet, wat moet ik veranderen zodat het wel klopt dan? ik snap er nog maar weinig van, maar dat hadden jullie waarschijnlijk al wel door :/

//edit
gorgi_19: ja ik zie wel dat de foutmelding maar 4 waarden aangeeft maar ik zie in mijn script nergens waar dat op slaat! :X

[ Voor 32% gewijzigd door mosymuis op 02-04-2003 15:09 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Zo ver ik kan zien, heb je de regel code, waar de fout optreedt, niet bijgesloten. Hier heb je blijkbaar 2 kolomwaarden verwijderd, welke hij nodig heeft.
//edit
gorgi_19: ja ik zie wel dat de foutmelding maar 4 waarden aangeeft maar ik zie in mijn script nergens waar dat op slaat!
Ik ook niet.. :) Tekstbestandje doorlopen op zoek naar deze waarden, evt. met behulp van Wordpad met de zoekfunctie.

[ Voor 47% gewijzigd door gorgi_19 op 02-04-2003 15:11 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Waarschijnlijk staat er ergens in het stuk dat je hier met (...) weglaat een regel waar maar 4 waarden in staan.

Trouwens, veldnamen "extra1" en "extra2" doen mij heel erg vermoeden dat dit geen correct datebaseontwerp is... wat wil je toevoegen?

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
mosymuis schreef op 02 april 2003 @ 15:08:
nee ik ook niet, wat moet ik veranderen zodat het wel klopt dan? ik snap er nog maar weinig van, maar dat hadden jullie waarschijnlijk al wel door :/

//edit
gorgi_19: ja ik zie wel dat de foutmelding maar 4 waarden aangeeft maar ik zie in mijn script nergens waar dat op slaat! :X
Ik type de laatste tijd wel veel van deze reply's maar:

MySQL Is zo duidelijk als wat! Je kan toch Engels? Je geeft 4 waarden en mysql wil er 6. Nu zie ik dat je in je voorbeel (...) Heb gedaan. Ik neem aan dat daar normaal nog veel meer waarden zitten. 1 van die regels heeft waarschijnlijk maar 4 waardes ipv 6 :|

Als je hier al niet uit komt..

edit:

En ik moet sneller tikken

[ Voor 4% gewijzigd door Sn3akz op 02-04-2003 15:13 ]


  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Verwijderd schreef op 02 April 2003 @ 15:10:
Waarschijnlijk staat er ergens in het stuk dat je hier met (...) weglaat een regel waar maar 4 waarden in staan.
Wil "Column count doesn't match value count at row 1" niet zeggen dat het om regel 1 gaat? En natuurlijk heb ik veel regels weggelaten, ik kan hier niet zomaar 3261 van die dingen gaan posten. Ik heb echter via een automatische replace functie elke rij 2 extra lege waarden meegegeven dus het kan niet dat er ergens maar 4 instaan. Waar kan dit nog meer door komen?
Verwijderd schreef op 02 April 2003 @ 15:10:
Trouwens, veldnamen "extra1" en "extra2" doen mij heel erg vermoeden dat dit geen correct datebaseontwerp is... wat wil je toevoegen?
Een modje waardoor ik bezoekers extra informatie kan laten bijsluiten. :)

Verwijderd

mosymuis schreef op 02 April 2003 @ 15:16:
Een modje waardoor ik bezoekers extra informatie kan laten bijsluiten. :)
En wat als de bezoeker 3x extra informatie wil bijsluiten? ;)

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
Row 1 wordt bepaald per database statement. Maar als ik het zo lees krijg ik het idee dat jij NIET echt het idee heb waarmee je bezig bent... (NOFI) Maar ik zou toch maar eens die 3261 rijen gaan zitten doorzoeken

Hint: Ctrl + F

[ Voor 5% gewijzigd door Sn3akz op 02-04-2003 15:21 ]


  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Verwijderd schreef op 02 April 2003 @ 15:19:
[...]
En wat als de bezoeker 3x extra informatie wil bijsluiten? ;)
Dan maak ik daar wel weer een extra kolom voor aan :P

Maar ff serieus: het kan bijna niet dat er een regel tusen zit die niet die 6 waarden bevat, omdat ik gewoon alles in één keer heb vervangen. Kan het hem niet ergens anders in zitten, een foutje in het bovenste stuk ofzo? Ik kan wel meer laten zien hier maar ik denk niet dat jullie daar nog iets mee kunnen. En wil dat Column count doesn't match value count at row 1 dan niet zeggen dat het om de 1e regel gaat? :?

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

mosymuis schreef op 02 April 2003 @ 15:16:
Wil "Column count doesn't match value count at row 1" niet zeggen dat het om regel 1 gaat? En natuurlijk heb ik veel regels weggelaten, ik kan hier niet zomaar 3261 van die dingen gaan posten. Ik heb echter via een automatische replace functie elke rij 2 extra lege waarden meegegeven dus het kan niet dat er ergens maar 4 instaan. Waar kan dit nog meer door komen?
Ajb geen 3261 regels posten... .Maar dat doorzoeken: Wordpad werkt erg goed, aangezien je een gedeelte van de string weet.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

mosymuis schreef op 02 april 2003 @ 15:21:
[...]
Dan maak ik daar wel weer een extra kolom voor aan :P
:X

Ik zou eens een goed boek over databaseontwerp gaan lezen... want dit is echt heel verkeerd ontwerp, en daar ga je op een bepaald moment tegenaanlopen.

De juiste manier is een aparte tabel, met een veld post_id en een veld extra. (en mogelijk nog een extra_id).

  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Nee dat wordt te ingewikkeld denk ik, de mod heb ik al, ik heb er zelf gewoon deze velden aan gebreid. Maar wat is er mis mee dan, 6 kolommen moet toch kunnen? :/

En ik heb nu overigens de fout gevonden; ik heb de regels in grote brokken ingevoerd en kwam zo steeds dichterbij. En wat bleek? Er zat een hele foutieve regel tussen en dus niet eentje waar ik alleen vergeten was de extra kolommen aan toe te voegen. Kijk maar:
code:
1
2
3
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('3208', 'c6c6202a0f', '', 'blaat', '', '');
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('0', '', NULL, NULL);
INSERT INTO phpbb_posts_text2 (post_id, bbcode_uid, post_subject, post_text, post_extra1, post_extra2) VALUES('3209', '0895ef491b', '', 'blaat', '', '');

Dus het probleem is opgelost, iig bedankt voor jullie hulp!! :)

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
Verwijderd schreef op 02 April 2003 @ 15:28:
[...]

:X

Ik zou eens een goed boek over databaseontwerp gaan lezen... want dit is echt heel verkeerd ontwerp, en daar ga je op een bepaald moment tegenaanlopen.

De juiste manier is een aparte tabel, met een veld post_id en een veld extra. (en mogelijk nog een extra_id).
Ga nou niet nog meer problemen maken die er niet zijn :P Laat hem eerst maar die waardes 'uploaden' :?

Daarna zien we wel verder.

@mosymuis: Heb je de fout al gevonden?? EDIT: Ja dus.. Zie je wel??

[ Voor 4% gewijzigd door Sn3akz op 02-04-2003 15:41 ]


Verwijderd

Nee dat wordt te ingewikkeld denk ik, de mod heb ik al, ik heb er zelf gewoon deze velden aan gebreid. Maar wat is er mis mee dan, 6 kolommen moet toch kunnen?
Tsja... je moet het zelf weten, maar er komt een moment dat je in de problemen komt, neem dat van mij aan.
Dus het probleem is opgelost, iig bedankt voor jullie hulp!!
Tsja... maar zoals je ziet is het probleem echt exact omschreven in de foutmelding... dus dat had je ook zelf op kunnen lossen :)

  • mosymuis
  • Registratie: Maart 2002
  • Laatst online: 21-06 10:15
Op zich niet want ik begin net in het MySQL gebeuren en wist ik veel dat het zo simpel zou zijn... en zoals ik al zei dacht ik niet dat het aan een foute regel lag aangezien ik alles in één keer had vervangen. (hoe die regel er uberhaupt in komt is me soieso een raadesl :/)

En hoezo kom ik hiermee in de problemen dan? Ik sta altijd open voor suggesties maar het is me nu niet helemaal duidelijk waarom ik een extra tabel zou moeten aanmaken als het zo ook kan. |:(

Verwijderd

mosymuis schreef op 02 april 2003 @ 15:50:
En hoezo kom ik hiermee in de problemen dan? Ik sta altijd open voor suggesties maar het is me nu niet helemaal duidelijk waarom ik een extra tabel zou moeten aanmaken als het zo ook kan. |:(
Je zei het zelf al: als je later nog een "extra" wil toevoegen, moet je weer je tabelontwerp aanpassen. Als je je tabelontwerp aanpast, zul je ook op allerlei plaatsen je applicatie moeten aanpassen.

Bovendien, als je wilt zoeken naar een "extra", hoe weet je dan of hij in "extra1" of "extra2" staat? Je zult dus in beide velden moeten zoeken. Wat als je straks (bij wijze van spreken) 16 extra velden hebt?

Kijk bijvoorbeeld eens op:
http://www.phpbuilder.com/columns/barry20000731.php3
http://www.engr.csulb.edu/~jewett/dbdesign/dbdesign.php
http://www.geekgirls.com/menu_databases.htm 8)
Pagina: 1