PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Michauko : Migrer du code PHP de mysql à mysqli

mardi 28 mai 2013 à 22:50

phpmysqlCa faisait un moment que je devais le faire. Mais la peur de tout planter pendant trop longtemps m’en empêchait.
Finalement, ça s’est fait en une heure, en comprenant le temps d’analyse et de compréhension de l’outil-qui-va-bien.
Mais de quoi je parle ?
Je parle du fait que tout le monde utilise l’API « mysql » de PHP – historiquement et par habitude – pour taper dans une base MySQL alors que celle-ci est obsolète depuis un paquet de temps. Il faut utiliser sa remplaçante « mysqli ».
C’est décrit ici chez PHP.net

En très très gros, il suffit de remplacer les fonctions mysql_quelque_chose() par mysqli_quelque_chose() et d’indiquer l’identifiant de connexion en premier plutôt qu’en dernier argument.
C’est bête, mais ça peut être long à faire sans faute.

Il y a donc un outil bien réalisé pour le faire automatiquement, tout en pouvant simuler les modifs de code. Il est fourni chez Oracle.
Son interface graphique, pratique en première approche, ne m’affichait pas le bilan des modifs pour tous les fichiers. Je ne sais pas pourquoi, et j’en suis donc rapidement venu à exécuter le mode client texte sur chaque fichier que j’avais besoin de migrer.
Les options permettent dans un premier temps de ne voir que les warnings/erreurs.

MySQLConverterTool

MySQLConverterTool


Dans mon cas, j’ai dû faire une passe de propre sur mysql_real_escape_string où je n’indiquais aucune connexion (paramètre optionnel). Du coup l’outil me blindait mon code avec des trucs imbuvables. Conclusion, il vaut mieux parfois vérifier la définition de l’ancienne fonction, faire propre, puis tenter une conversion.

Attention, les permissions sur vos fichiers peuvent s’en trouver modifiées, ce qui peut poser des problèmes.

Gravatar de Michauko
Original post of Michauko.Votez pour ce billet sur Planet Libre.