Ik ben vrij nieuw met php. Ik heb dit tijdens mijn opleiding wel gezien maar heb er sinds 8 jaar niets meer gedaan. Nu ben ik voor een vereniging de website aan het aanpassen deze is nog op php 5.6 gebouwd maar de provider ondersteund het niet meer.

Is er een mogelijkheid om snel een upgrade te doen van mysql naar mysqli?

De site is niet Object georiënteerd geprogrammeerd. met gevolg het zijn meer dan 30 pagina's met overal mysql call's in.
Je zult voornamelijk de mysql_** prefix van de functies naar mysqli_** moeten ombouwen.
Maar bij diverse functies zijn de argumenten anders, en wordt er vaak een connectie-variabele vereist:
Net als bij [php]mysqli_query[/php] en [php]mysqli_real_escape_string[/php]. Ook is de connectie meteen voorzien van een vierde 'database'-argument

Beste advies is om alle functies op PHP.net even na te lezen qua opbouw.

Persoonlijk raad ik aan om de OO-variant te gebruiken. Die kan je met een aparte class uitbreiden. Zo heb ik onder meer de foutafhandeling in een ge-clonede $mysqli->query() gebouwd, met ingebouwde foutafhandeling. Nog mooier zou een overkoepelende class zijn mocht je ooit van database zou veranderen. Dan is het aanpassen minimaal werk.
Maar het is net hoever je wilt gaan. :-)
- Ariën - op 26/11/2018 14:12:56
Nog mooier zou een overkoepelende class zijn mocht je ooit van database zou veranderen.

Nog nooit, in mijn gehele IT-carrière, ben ik dat eigenlijk tegengekomen. Wat veel zinniger is is een schil om MySQL zelf, zodat als de definities voor gebruikmaking van een MySQL-database een keer veranderen -waar hier dus op dit moment ook al sprake van is- je enkel deze definities hoeft aan te passen, in plaats van alle hardcoded instanties van mysql_whatever() waar je nu mee te maken hebt inhoudelijk aan te passen. Een ezel stoot zich in 't gemeen...

Anyhow, je kunt alles wel omzetten en dat zal uiteindelijk ook wel lukken, maar de kans dat e.e.a. niet meer up-to-date is uit oogpunt van security (en privacy, als het persoonsgegevens / persoonlijke gegevens betreft) lijkt mij een heikeler punt.

Je kunt best in eerste instantie alles porten van mysql_* naar mysqli_*, maar eigenlijk zou je dus verder moeten gaan dan dat. Simpelweg omdat iets werkt maakt het nog niet juist (of veilig, for that matter).
Voor zover ik weet heeft phpBB een dergelijke databaseclass die je kan omswitchen naar mysqli of mysql en mogelijke andere types. En ik heb het wel een vaker gezien. (moet de source nog eens checken). Maar het is net hoever je wilt gaan.

Voor een verkoopproduct zou ik het zeker handig vinden. Als het eigen source is, ligt het eraan hoeveel werk je wilt verzetten voor iets wat zelden tot nooit plaatsvindt.

Ikzelf ben enkel overgestapt van mysql naar OO Mysqli, met daarbij een extended class.
Prima zat.
Oh ik kan mij best voorstellen dat bepaalde webapplicaties en -systemen support hebben voor meerdere databases, maar dat is nog steeds iets anders dan gedurende de levensloop van een applicatie switchen van database. Zelfs met producten als phpBB kies je waarschijnlijk initieel één database(type), maar verander je daarna toch niet meer ook al is er de mogelijkheid. Er is simpelweg geen noodzaak voor.
Geen idee of die ook een conversie aanbieden, technisch hoeft dat geen bottleneck te zijn.
En ommezwaai gebeurt niet vaak. Vooral enkel bij mysql -> mysqli.
Maar volgens mij dwalen we een beetje af ;-)

Bedankt allemaal voor de reacties. Ik heb ondertussen een eenvoudige manier om een replace te doen gevonden via notepad++

In de toekomst gaat deze site OO worden aangezien we deze volledig gaan vervangen als ook responsive maken.

Reageren