Door
Gerrit Wiersma
op 24-07-2010 22:51
gewijzigd op 25-07-2010 16:15
4.096 views
Hallo, ik loop tegen een probleempje aan, ik heb de volgende tabel:
CREATE TABLE `uitslagen` (
`id` int(11) NOT NULL auto_increment,
`jaartal` varchar(255) NOT NULL,
`vluchtcode` varchar(255) NOT NULL,
`plaats` varchar(255) NOT NULL,
`uitslag` text NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
als ik uitslag.php?jaartal=2010 doe, dan wil ik alle rows met het jaar 2010 hebben,
en als ik uitslag.php?jaartal=2009 doe, dan wil ik alle rows waar als jaartal 2009 staat zichtbaar hebben etc,
Herhaling van wat ik eerder gepost heb maar dan nu met de uitslag parameter
Noppes Homeland op 24/07/2010 23:05:11
Tip 1: gebruik de InnoDB engine ipv MyISAM
Tip 2: gebruik mysql_fetch_assoc ipv de _fetch_array
Tip 3: superglobals zijn gedefinieerd in hoofdletters $_get[] <> $_GET[]
Tip 4: pas op voor sql-injectie
Het verschil tussen InnoDB en MyIsam heeft functioneel gezien geen fluit met relationele databases en het redelijkerwijs opzetten daarvan te maken. Je kan met beide (storage!) engines dezelfde relationele databases opzetten en zolang je geen 250 transacties per seconde te verwerken hebt maakt het geen verschil. Enne ik verneem graag onderbouwde tegenargumenten.
@Noppes: "MyIsam ondersteunt geen transacties" Wat is een transactie ?
Update table set veld = NOW() is een elementaire transactie. We kunnen nu wel gaan kiften over de definitie van een transactie maar nogmaals het is niet zinvol om tegen iemand te roepen: Tip 1: gebruik de InnoDB engine ipv MyISAM
The only advantage InnoDB has over MyISAM is that it supports row locking, while MyISAM only supports table locking. Therefore, if lots of reads and writes are constantly being done to a very large table, it eliminates the constant database errors that using a MyISAM table would cause from the overload. InnoDB would therefore be a tad more reliable when you don't mind taking a small performance hit in exchange for not suffering from table locking issues. To achieve a very high lock speed, MySQL uses table locking (instead of page, row, or column locking) for all storage engines except InnoDB, BDB, and NDBCLUSTER.