Warning: Declaration of DB_mysqli::query($resource) should be compatible with mysqli::query($query, $resultmode = NULL)

MatteoBouliteau
Invité n'ayant pas de compte PHPfrance

13 août 2019, 15:02

Bonjour.

Je me sers d'un CMS opensource un peu ancien pour un petit jeu, seulement avec ma version 7.1 de PHP cette erreur s'affiche :
Warning: Declaration of DB_mysqli::query($resource) should be compatible with mysqli::query($query, $resultmode = NULL)
bloquant le fonctionnement de certaines fonctions de mon site internet. Avec la version 5.6 l'erreur existe toujours mais ne bloque pas les fonctions de mon site. Comment y remédier ? J'ai cherché en vain, merci par avance de votre aide.

Matteo Bouliteau
Invité n'ayant pas de compte PHPfrance

13 août 2019, 15:03

Autant pour moi l'erreur n'est pas présente en 5.6

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8218 Messages

13 août 2019, 15:17

Bonjour,

Il y a 4 possibilités :
A) Rester sur un hébergeur qui dispose de PHP 5.6
B) Mettre à jour ton CMS dans sa dernière version en vérifiant qu'elle soit compatible PHP 7
C) Si il n'y a pas de version plus récente, faire le portage toi même de ton CMS vers PHP7 (mais ça peut être très long et laborieux en fonction de la complexité de ton CMS)
D) Changer de CMS
Quand tout le reste a échoué, lisez le mode d'emploi...

Matteo Bouliteau
Invité n'ayant pas de compte PHPfrance

13 août 2019, 15:20

Merci de votre réponse. Je pense pouvoir essayer de le passer en nouvelle version car aucune des autres possibilités ne semble abordable, presque, ou très contraignante, y a-t-il des tutoriels pour ce genre de manœuvre ?

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 8218 Messages

13 août 2019, 16:12

Il n'y a pas véritablement de tuto que je connaisse, ça dépend du code de ton appli...

Le point de départ est probablement de lire cette page et les pages associées : https://www.php.net/manual/fr/migration70.php
Et ensuite à chaque fois que tu as un message d'erreur :
1) tu lies attentivement le message d'erreur pour le comprendre et identifier la fonction problématique
2) tu va sur la page de la doc de cette fonction (http://php.net/NOM_DE_LA_FONCTION) pour voir si il n'y aurait pas une note qui explique si cette fonction a une remplaçante ou un nouveau paramètre à indiquer
3) tu fais une recherche sur Google et Stackoverflow pour voir comment les autres ont résolu ce problème

Et ça, pas à pas pour chaque erreur, pour chaque fonction incompatible. Donc ça veut dire aussi qu'il faut tu testes toutes les fonctionnalités de ton CMS en intégralité pour vérifier qu'elles fonctionnent toujours...
Si le code de ton CMS est propre et pas trop ancien, ça ne va pas être très compliqué, sinon ça va être très très laborieux.
Bon courage !
Quand tout le reste a échoué, lisez le mode d'emploi...