MySQL en MySQLi
Ik heb een vraag m.b.t. MySQL en MySQLi.
Op php.net wordt aangegeven dat MySQL vanaf PHP 5.5 niet meer ondersteund wordt en in de toekomst verwijderd zal worden. Hoe snel moeten we zijn met websites, om deze om te zetten naar MySQLi?
Met vriendelijke groet,
Kitty
Je kan naast MySQLi ook PDO gebruiken wat naar mijn mening veel beter is.
Het enige goede aan MySQLi is dat het iets sneller is maar als je je database goed hebt opgebouwd dan merk je dat verschil nauwelijks behalve als je het daadwerkelijk gaat testen met cijfertjes. Nog een klein voordeel is dat MySQLi veel op mysql lijkt en de syntax van PDO is net iets anders omdat je het alleen op OOP manier kan schrijven en MySQLi als procedurele code.
Het voordeel van PDO is dat als je het eenmaal goed opbouwt je het nooit hoeft te veranderen in principe omdat het de meeste database drivers ondersteund. zo kan je simpel overstappen van MySQL naar Oracle of Postgresql zonder je code te veranderen. Ook is het iets veiliger dan MySQLi.
The choice is up to you!
http://net.tutsplus.com/tutorials/php/pdo-vs-mysqli-which-should-you-use/
Gewijzigd op 12/03/2013 10:59:55 door Reshad F
Gewijzigd op 12/03/2013 10:56:58 door Koen Hollander
Is er misschien een tijdsindicatie waar we rekening mee dienen te houden?
Verdwijnt het over bijvoorbeeld een half jaar, een jaar of kan het nog wel 2 jaar duren?
Nu is mijn vraag is het zoveel dat je er zo lang de tijd voor nodig hebt of wil je het gewoon uitstellen?
tip: ik raad je aan om code wat nog geschreven gaat worden eventueel wel al in PDO of MySQLi te doen.
Waar het eigenlijk om gaat is dat ik weet hoe snel ik het allemaal moet omzetten.
De code die momenteel geschreven wordt, wordt al niet meer geschreven in MySQL. Eventuele code die aangepast moet worden en in MySQL staat wordt herschreven naar MySQLi.
Bij dit soort ingrijpende wijzigingen zul je ook zien dat die meestal pas worden doorgevoerd bij een major upgrade, dus PHP 6 of misschien zelfs pas PHP 7.
Om je een beetje gerust te stellen: kijk naar HTML 4. Dat heeft ontzettend veel deprecated functionaliteit, maar de laatste specificatie stamt uit 1999 en nog steeds wordt het op de meeste websites gebruikt. PHP 6 is ook iets waar al sins 2006 of zo over wordt gediscussieerd. Ik vrees dan ook dat je nog ruimschoots de tijd hebt om de sites aan te passen.
Wat mij betreft kan de support overigens niet snel genoeg geschrapt worden. Laat iedereen maar even door de zure appel heenbijten. Veroorzaakt meteen ook een beetje natuurlijke selectie onder de websites.
Gewijzigd op 12/03/2013 11:51:28 door Willem vp
En vergelijken met HTML is appels met peren vergelijken. HTML heeft een zeer gemakkelijk deprecated systeem, zodra er iets is wat niet (meer) ondersteund wordt zal hij het gewoon overslaan. PHP gaat dan met errors gooien enzo...
Om je antwoord te beantwoorden: De laatste alpha versie van 5.5 is uit, ergens eind maart komt de eerste beta versie. Ik denk dat PHP5.5 ergens rond april/mei zal uitkomen. Dan duurt het nog 1 tot enkele jaren voordat de meeste servers naar PHP5.5 zijn geupgrated.
Vervolgens moet je niet bang zijn dat de mysql_* extensie in PHP5.6 gaat verdwijnen, dat duurt echt nog wel een paar versies. Afgaande dat het releasen van een nieuwe versie zo'n jaar duurt betekend het dus dat je PHP5.7 ergens rond april 2015 hebt, het dan 2 jaar duurt voordat je host het hebt en dat je je dan pas zorgen hoeft te maken. Dat betekend dus ergens rond 2017 ofzo.
Mijn tip: Gewoon zo laten. MySQL wordt zo extreem veel gebruikt dat ik me afvraag of er een hoster is die de extensie op uit laat staan.
Tegen de tijd dat je het echt moet gaan updaten is het al tijd voor een complete rewrite van het systeem, omdat de hele code dan al weer te oud is.
Je kunt nog altijd zelf mysql_* functies maken die pdo gebruiken wanneer mysql_* niet meer ondersteund wordt.
Quote:
Je kunt nog altijd zelf mysql_* functies maken die pdo gebruiken wanneer mysql_* niet meer ondersteund wordt.
Inderdaad, zat ik ook aan te denken. Een soort compatibility layer.
Offtopic:
Quote:
Er zijn nog genoeg (of eigenlijk veel te veel) hosters die nu pas de overstap naar 5.3 maken.
Is dit niet een beetje overdreven? Voor zover ik de hosting in NL heb onderzocht (heb dat pas weer moeten doen) is iedereen wel naar 5.3. Het gaat er vooral nu om of 5.4 wel of niet geïnstalleerd is.
Wouter J op 12/03/2013 14:55:08:
En vergelijken met HTML is appels met peren vergelijken. HTML heeft een zeer gemakkelijk deprecated systeem, zodra er iets is wat niet (meer) ondersteund wordt zal hij het gewoon overslaan. PHP gaat dan met errors gooien enzo...
Ik zit helemaal geen fruitsalade met elkaar te vergelijken. Deprecated wil niet zeggen dat het niet meer ondersteund wordt, alleen dat het niet (meer) wordt aanbevolen. Dat is in HTML hetzelfde als in PHP. Wat jij beschrijft, het negeren van dingen die niet worden ondersteund, is een language feature. Dát is pas appels met peren vergelijken. ;-)
En ja, PHP6 wordt al in één adem genoemd met Perl 6; daar wordt ook alweer bijna 13 jaar aan gewerkt. Het zal ooit wel komen, maar ik ga er mijn adem niet voor inhouden.
Quote:
Mijn tip: Gewoon zo laten.
Ik heb betere tips gezien. Alhoewel er geen druk achter zit, zou ik bij de eerstvolgende gelegenheid toch de boel gaan omzetten naar mysqli. Wellicht ken je het Oud-Hollandse spreekwoord "van uitstel komt afstel"? Als je het omschrijven nu voor je uitschuift, en je toevallig een provider treft die vrij snel is met upgraden, zou je uiteindelijk nog wel eens in tijdnood kunnen komen om de boel daadwerkelijk om te schrijven.
Maar het is niet alleen dat. De oude mysql-extensie begint nu functionaliteit te missen; zo wordt al niet de volledige functionaliteit van MySQL 5.1 en later ondersteund (for the record: MySQL 5.1 stamt al uit 2005) en kun je ook fluiten naar andere dingetjes die de kwaliteit van het leven vergroten, zoals stored procedures en prepared statements.
Daarnaast zal er geen ontwikkeling meer plaatsvinden op de oude mysql-extensie. Security fixes zullen nog wel uitkomen, maar als er morgen een security bug wordt ontdekt die zo ernstig is dat er heel veel werk in gaat zitten om het op te lossen, zou zomaar besloten kunnen worden dat de extensie er per de eerstvolgende release (desnoods minor) wordt uitgehaald. Die kans is weliswaar klein, maar het zal je net gebeuren. ;-)
Overigens zal met ingang van PHP 5.5 elke aanroep van een mysql_*-functie een E_DEPRECATED error geven. Die is niet fataal, maar wel vervelend. Uiteraard kun je errors wel onderdrukken, maar dát vindt Willem nou net weer geen goed idee.
Gewijzigd op 12/03/2013 16:50:00 door Willem vp