Door
Jeroen VD
op 16-03-2012 16:55
gewijzigd op 16-03-2012 18:21
2.563 views
ik heb het een en ander gelezen of pdo, en over mysql_* functies. nou vraag ik me af, wat is nu beter? wat is jullie mening daarover? en dan ook waarom, simpele gebruik deze - antwoorden heb ik niet zo veel aan voor een keuze
Je topic titel is denk ik fout, dbo moet pdo zijn ;)
Altijd kiezen voor PDO als je server dat ondersteund. MySQL_* functies gaan eruit en worden vervangen door MySQLi of PDO en dan is PDO beter.
Waarom is PDO beter?
- Prepared statements ondersteuning, dit is veiliger en sneller
- Meerdere database type support, MySQL(i) supporten allen MySQL, PDO ook alle andere DB types als Oracle, MS SQL, enz.
- PDO is een klasse, geen functie lib. Dit maakt het veel krachtiger en zorgt voor betere implentatie mogelijkheden mocht je later OOP gaan leren.
- PDO gebruik exceptions als foutafhandeling, dit is de nieuwe manier van foutafhandeling
- PDO is gemaakt voor PHP5 en daarom modern en hij maakt gebruik van nieuwe methoden. MySQL is gemaakt voor PHP4 en daarmee al ouderwets.
- MySQL wordt standaard uitgeschakeld geleverd in nieuwe versies, hierdoor heb je de kans dan de mysql_* functies niet werken
Een goede tutorial om te beginnen met PDO: phptuts.nl/view/27/
ok bedankt! ik heb nu wamp geiinstalleerd, maar werkend krijg ik die niet. ik heb wat hier eerder stond verplaats naar een ander topic. omdat dit niet echt hier tussenpast.
voor de rest heb ik dat ook aangepast
Noppes, ik vind het interessant dat zodra het over PDO gaat jij altijd een negatief tegengeluid laat horen. Op zich is daar niks mis mee, maar ik zou graag eens conrete redenen van je horen waarom je je zo tegen PDO verzet.
Het is heel makkelijk om te zeggen dat iets niet goed is, maar zolang je daar geen onderbouwing voor kunt geven, heeft zo'n opmerking weinig of beter gezegd geen waarde. Probeer in de toekomst eens aan te geven waarom je iets vindt. Ik vind... omdat... dan heeft iedereen er wat aan. Alvast bedankt.
@Ozzie, ik heb nergens geschreven dan wel beweert dat PDO niet goed is - hooguit dat bij de introductie het danig buggie was dat je het beter links kon laten liggen -, het probleem is echter dat het zo opgehemeld wordt terwijl er totaal geen voordeel aan te behalen valt door je specifiek te richten op PDO.
Ik vind niks en hoef het niet te onderbouwen, het is denkstof voor degene die het leest. Er worden maar luk raak dingen beweert, waarschijnlijk omdat ze niet beter weten of nooit naar het andere gekeken hebben, - door derden - die niet gestaaft kunnen worden.
Kijk Noppes... nu gaan we in discussie en zo hoort het.
Ik werk ook met PDO en tot nog toe gaat het goed, maar alternatieven heb ik niet echt geprobeerd. Dus vandaar dat ik me afvraag waarom je de voorkeur geeft aan andere database(driver)s dan PDO. Ik heb zelf niet ervaren dat PDO buggy is.
"Ik vind niks en hoef het niet te onderbouwen, het is denkstof voor degene die het leest. Er worden maar luk raak dingen beweert, waarschijnlijk omdat ze niet beter weten of nooit naar het andere gekeken hebben, - door derden - die niet gestaaft kunnen worden."
Tuurlijk vind jij wel iets, anders zou je het niet zeggen. En soms worden er inderdaad lukraak dingen beweerd, maar juist dan is het van belang dat je aangeeft waarom die beweringen niet kloppen. Iets verkeerd onderbouwen heeft net zo weinig zin als iets helemaal niet onderbouwen. Ik hoop dat je begrijpt wat ik bedoel te zeggen. Top in ieder geval dat je even gereageerd hebt.
Noppes, drog redenen? Waarom?? Zou je misschien ooit eens willen uitleggen waarom jij "PDO alleen voor kleine projecten" goed vindt?
Dit verkondig je namelijk al een hele tijd, maar NOOIT maar dan ook echt NOOIT kom jij met redenen waarom PDO slecht is. Ik heb MySQLi, MySQL en PDO geprobeerd, sterker nog ik ben begonnen met MySQLi, daarna MySQL en daarna pas PDO. Maar ik vind PDO nog steeds beter. Waarom? Omdat MySQLi voelt alsof ze de MySQL lib in een klasse hebben gestopt en meer niet. En verder omdat PDO ten minste wel een goed prepared statements systeem bevat en MySQLi niet. Tevens omdat PDO meerdere databases support en MySQLi niet.
Wat is er slecht aan PDO en waarom zou ik mysql_* of MySQLi moeten gebruiken? Zou je misschien 1 maar dan ook 1 keer je keiharde mening willen onderbouwen?
[hr]
Jeroen,
In de PHPMyAdmin settings hoef je niks te wijzigen. PHPMyAdmin gebruikt gewoon wat hij wil gebruiken, volgens mij mysql_*, en dat mag je lekker zo laten. PHPMyAdmin is slechts een tool die de MySQL server omzet in leesbare data voor ons, meer niet. Je kan dus eigenlijk ook zelf je eigen PHPMyAdmin maken. Het is gewoon PHP + HTML + CSS + MySQL.
Succes met het leren van PDO!
PDO is niet beter dan de bestaande pecl extensions. Dat is jouw natte droom dat dat wel zo is.
Leg nu eens uit:
"Tevens omdat PDO meerdere databases support", wat wil je daar mee schrijven dan? Want je leeft daarmee in een hele onwerkelijke droom, dat dat een voordeel is.
"PDO ten minste wel een goed prepared statements systeem bevat en MySQLi niet."
Ook dit is geblaat in de ruimte!! Het zijn twee verschillende methoden met hetzelfde resultaat, dat wil dan toch echt niet zeggen dat die van PDO beter is dan die van een andere pecl extension.
Dus kom op zeg, kom eens met een echt goede reden aan waarom een appel lekkerder zou zijn dan een peer.
Maar ja, je mag blijven dromen, maar verkondig dan niet dat PDO boven alles gaat.
Dat PDO en mysqli beter zijn dan mysql staat, lijkt me, buiten kijf.
Het feit dat ze prepared statements en transacties hebben is ruim voldoende reden om de overstap te maken. Ook de OO interface is natuurlijk wel handig.
Of PDO beter is dan mysqli is natuurlijk minder duidelijk. Ik vind het zelf nogal raar dat ook een procedurele interface wordt aangeboden bij mysqli, maar dat is natuurlijk niet echt een nadeel.
Belangrijker is dat, zoals hier onder day 2 vermeld staat, PDO door het core team wordt gezien als de belangrijkste DB interface.
Daarentegen staat hier een overzichtje van de verschillen. mysqli wordt hier genoemd als de voorkeur van het MySQL team.
Voor mij geeft de abstractie van PDO de doorslag. Waarom zou je deze afwijzen als je dat praktisch geen overhead kost?