Door
Tim Wolf
op 19-02-2016 20:28
gewijzigd op 19-02-2016 20:30
3.766 views
Hallo PHPHulp,
Ik maak gebruik van gratis hosting die binnenkort php 5.4 niet meer ondersteund en overgaat naar 7.0 (je kunt nog wel kiezen uit 5.6) Maar mijn vraag is als ik 7.0 aanzet dan zie ik allemaal errors met mysql en meer. Aangezien dit een lange topic wordt aangezien er meerdere delen van een script aan bot komt.
1ste error. Toevoeging: Error 1:
Mijn eerste error is
Fatal error: Uncaught Error:
Call to undefined function mysql_connect() in /home/prive/public_html/members_area/config.php:12
Stack trace: #0 /home/prive/public_html/members_area/index.php(2):
include() #1 {main} thrown in /home/prive/public_html/members_area/config.php on line 12
De standaard MySQL driver (dit omvat alle mysql_* functies) bestaat niet meer in PHP 7.0. Je zult moeten overstappen naar MySQLi of PDO. Dit wordt ook hoog tijd, want dit wordt al circa ~10 jaar aanbevolen.
Ja, maar zeker niet de enige stap. Alle functies moet je herschrijven naar mysqli. Vaak gaat dit gepaard met een extra argument die naar je connectie verwijst.
hmmm hmmm OOP ja. Dit staat overigens voor Object Oriented Programming. Maarrrrr als de hele PHP code Procedural geschreven is dan is dit ook een beetje een vlag op een str*ntschuit :-)
Indien Tim aardige ervaring heeft opgebouwd met Procedural code en geen ervaring heeft met OOP dan zou ik zeker de Procedural manier aanraden.
Mijn hele CMS was nog procedureel geschreven, maar een half jaartje geleden zag ik in dat alles eens maar MySQLi-OO moet gaan, en ben ik alles aan het verbouwen naar OO. ;-)
Hoop werk, maar foutafhandeling kan je op deze manier meteen integreren in je $db->query("......");
Als ik daar mysqli_real_escape_string van maak geeft hij de eerste error aan:
Warning: mysqli_real_escape_string() expects exactly 2 parameters, 1 given
hetzelfde met:
Warning: mysqli_fetch_array() expects parameter 1 to be mysqli_result, null given in
Ja, maar zeker niet de enige stap. Alle functies moet je herschrijven naar mysqli. Vaak gaat dit gepaard met een extra argument die naar je connectie verwijst.
Neeeeeeee....
Het eerste stukje klopt, met de variabele waarin je de connectie link maakt.
Maar die stripslashes moet er uit. Je escaped, dat wil zeggen dat er (onzichtbare)slashes worden toegevoegd.
Dat is om te escapen op kwaadwillende karakters. Vervolgens ga je die om zeep helpen met stripslashes dus dat moet eruit.