PHPMyAdmin perikelen

Pagina: 1
Acties:

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
Zodra ik een record wil wijzigen in PHPMyAdmin krijg ik de volgende rare query te zien:

code:
1
2
3
4
UPDATE `cats`
SET `catnaam` = 'Apple | Powerbook',
`cattype` = 'Array' 
WHERE `catID` =2 LIMIT 1 ;


Wat is hier zo raar aan ? Nou, cattype is een integer, maar hij maakt er "Array" van. Ik snap er echt totaal niks van. Mijn databasetype is MyISAM, verder staat alles zoals het hoort te staan.

Hierbij even de volledige tabel layout:

code:
1
2
3
4
5
6
CREATE TABLE `cats` (
  `catID` int(250) NOT NULL auto_increment,
  `catnaam` varchar(250) default NULL,
  `cattype` int(250) NOT NULL default '0',
  PRIMARY KEY  (`catID`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=48 ;


Ook met oudere versies van PHPMyAdmin krijg ik hetzelfde resultaat.

Kan iemand mij vertellen wat hier niet aan klopt ?

[ Voor 8% gewijzigd door mcdronkz op 10-05-2006 23:01 ]


  • _reboot_
  • Registratie: December 2004
  • Laatst online: 12-02 09:22
Welke versies van MySQL en PHPMyAdmin gebruik je?

  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
MySQL - 4.1.18-nt
phpMyAdmin - 2.8.0.3

Heb nu even versie MySQL - 5.0.21-community-nt geinstalleerd, geen verschil.

-edit-

Oh, krijg wel deze melding:

Notice: Array to string conversion in C:\Program Files\Apache Group\Apache2\htdocs\phpmyadmin\libraries\tbl_replace_fields.inc.php on line 130

[ Voor 95% gewijzigd door mcdronkz op 10-05-2006 23:50 ]


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 00:22

Janoz

Moderator Devschuur®

!litemod

Ah, dan lijkt het me een bugje in phpmyadmin. De 'array' melding krijg je namelijk wanneer je een variabele die eigenlijk een array is zonder index probeert af te druken. Ergens wordt je getal dus toegekend aan een array ipv een gewone variabele. Hier kun je zelf eigenlijk weinig anders aan doen dan deze bug melden bij phpmyadmin en/of een nieuwere versie instaleren.

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


  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
Janoz schreef op donderdag 11 mei 2006 @ 09:35:
Ah, dan lijkt het me een bugje in phpmyadmin. De 'array' melding krijg je namelijk wanneer je een variabele die eigenlijk een array is zonder index probeert af te druken. Ergens wordt je getal dus toegekend aan een array ipv een gewone variabele. Hier kun je zelf eigenlijk weinig anders aan doen dan deze bug melden bij phpmyadmin en/of een nieuwere versie instaleren.
Sjah, dat heb ik nu 1 min geleden gedaan, en ik heb nog steeds die fout.

Op een ander systeem, met dezelfde database werkt het foutloos. Kan het nog iets met de PHP versie te maken hebben ?

Waarschijnlijk is de fout gelokaliseerd:

http://sourceforge.net/tr...roup_id=23067&atid=377408

Jup, werkt nu met PHP 5.1.4 !!

Thanks iedereen.

[ Voor 16% gewijzigd door mcdronkz op 11-05-2006 10:38 ]


Verwijderd

offtopic:
catID en cattype van 250 chars? Dan krijg je iets als:

51496847301044638514968451495149684730104463849527583984730104463849527583973010514968473010446384952758394463514968473010446384952758394952758394952751496847301044638495275839583514968475149684730104463849527583930104463849527583951496847301044638495275839.

Aardig wat producten:)

  • OnTracK
  • Registratie: Oktober 2002
  • Laatst online: 14:06
Inderdad wat tjetta zegt, waarom in godsnaam 250 tekens voor een getal!?

Is het niet gewoon een auto-upgrade van een integer omdat die niet zulke grote getallen toestaat en een array wél. (net zoals VARCHAR(256) automatisch TEXT wordt)

edit:
Linkje nog niet gelezen...

[ Voor 10% gewijzigd door OnTracK op 11-05-2006 21:29 ]

Not everybody wins, and certainly not everybody wins all the time.
But once you get into your boat, push off and tie into your shoes.
Then you have indeed won far more than those who have never tried.


  • mcdronkz
  • Registratie: Oktober 2003
  • Laatst online: 16-04-2025
Ja is niet echt optimaal op deze manier inderdaad. Zal dat allemaal gaan optimaliseren e.d. O-) Moet me nog maar eens flink verdiepen in de SQL materie.

  • JeRa
  • Registratie: Juni 2003
  • Laatst online: 30-04-2025
Offtopic: dat INT(250) betekent niet dat er 250 bytes worden gereserveerd voor dat integerveld, maar dat geeft aan hoeveel karakters er moeten worden gevuld met een nul ('0') als ZEROFILL aanstaat.

Bij een VARCHAR-veld is het wél het maximaal aantal karakters.
Pagina: 1