Toon posts:

[MySQL] voert foutieve data in

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik weet niet zo goed wat ik hier mee aanmoet. Ik heb het in ieder geval nog nooit meegemaakt. Een zoektocht hier en daar heeft ook niet zo veel relevants opgeleverd....

Ik voeg in PHPMyAdmin een nieuwe regel toe aan een tabel:

Afbeeldingslocatie: http://img393.imageshack.us/img393/2932/insertdata4hr.th.png

Dat lijkt allemaal goed te gaan, ook als ik namelijk het resultaat van de insert query bekijk ziet alles er goed uit:

Afbeeldingslocatie: http://img393.imageshack.us/img393/6485/insertedrow4nf.png

echter vraag ik nu via de search de ingevoegde regel met ID 1169 op, dan krijg ik dit als resultaat:

Afbeeldingslocatie: http://img393.imageshack.us/img393/6962/search3ds.png

en dat klopt dus niet. Het rare is dat lang niet altijd foute data wordt ingevoerd. Ik heb even geprobeerd de hele tabel leeg te maken en vervolgens opnieuw deze regel in te voeren. Dat mocht niet baten. Ook de verwijzigingen naar teams en verder verenigingen zijn correct.

Het rare is dat een lokale kopie van de database hetzelfde probleem heeft. Bij de invoer van een team met ID 137 wordt 127 opgeslagen.

Ik heb verder geen controle over de phpmyadmin of sql, omdat dat bij mijn hosting provider draait.

Iemand een idee?

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

tinyint, maak daar een iets grotere van, een tinyint kan je max 127 (255 unsigned) in kwijt :)

Verwijderd

Staat tinyint wel een waarde > 127 toe?

Verder weet ik niet wat dit met een programmeerprobleem te maken heeft.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
en daar krijg je geen foutmelding van :X

[ Voor 3% gewijzigd door P_de_B op 01-09-2005 12:58 ]

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
8)7 8)7 8)7

sjonge sjonge soms is het zo simpel :D. Deze mag gauw dicht anders ga ik me schamen :). DANK!

[ Voor 8% gewijzigd door Verwijderd op 01-09-2005 13:00 ]


Verwijderd

Topicstarter
Verwijderd schreef op donderdag 01 september 2005 @ 12:58:
Staat tinyint wel een waarde > 127 toe?

Verder weet ik niet wat dit met een programmeerprobleem te maken heeft.
bij het forum staat dit:

Programming & Webscripting

Het programmeer en webscripting forum bij uitstek voor echte applicaties, PHP, MySQL, ASP, etc. Allemaal hele koele dingen, maar niet altijd even makkelijk. Als je er zelf niet meer uitkomt: hier zitten de experts.

dus dacht post het hier...

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

P_de_B schreef op donderdag 01 september 2005 @ 12:58:
en daar krijg je geen foutmelding van :X
Als je voor dit soort dingen foutmeldingen wilt hebben moet je geen mysql gebruiken. Natuurlijk is het vreemd dat je geen foutmelding krijgt, maar aan de andere kant is dit de verantwoordelijkheid van de applicatie die de query uitvoerd.
Verwijderd schreef op donderdag 01 september 2005 @ 12:58:
Verder weet ik niet wat dit met een programmeerprobleem te maken heeft.
ehm, dit heeft er alles mee te maken ;)
immers je stopt er een waarde in en je krijgt wat anders, dat het in dit geval via PHPmyAdmin gebeurd is niet relevant, het had net zogoed een eigen applicatie kunnen zijn.

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Erkens schreef op donderdag 01 september 2005 @ 13:35:
[...]

Als je voor dit soort dingen foutmeldingen wilt hebben moet je geen mysql gebruiken. Natuurlijk is het vreemd dat je geen foutmelding krijgt, maar aan de andere kant is dit de verantwoordelijkheid van de applicatie die de query uitvoerd.
In mijn beleving niet. Ik moet toch gewoon een overflow error krijgen? Hij moet toch niet zelf maar wat data gaan invoeren dat wel 'past'. Als ik een char in een int veld insert, krijg ik dan 9 als waarde? Sorry, maar dit is natuurlijk wel een tekortkoming.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

P_de_B schreef op donderdag 01 september 2005 @ 18:26:
[...]


In mijn beleving niet. Ik moet toch gewoon een overflow error krijgen? Hij moet toch niet zelf maar wat data gaan invoeren dat wel 'past'. Als ik een char in een int veld insert, krijg ik dan 9 als waarde? Sorry, maar dit is natuurlijk wel een tekortkoming.
natuurlijk is het een tekortkoming, dat ontken ik ook niet, maar dan nog is het de taak van de applicatie om niet zo'n overflow te krijgen, of prog jij ook altijd zo dat je wel ziet wat je doet zodra je een exception krijgt ipv te voorkomen dat je er eentje krijgt ;)
Overigens zal het vast wel in de manual staan wat het gedrag van mysql is bij dergelijke situaties.

offtopic:
overigens kan je een char best in een int veld inserten, niks mis mee, A wordt dan bijvoorbeeld 65 ofzo :+
Pagina: 1