Extension mysql obsolète
Posté : 10 avr. 2014, 15:54
Certains d'entre vous possèdent des scripts php dans lesquels ils font appel à une base de données MySql.
Php fait évoluer ses extensions et ainsi depuis déjà quelques années un nouveau type d'extension "mysqli" (php_mysqli) est apparu, plus performant que les extensions de types "mysql" (php_mysql).
Depuis la version 5.5.0 de php les extensions de type "mysql" sont déclarées obsolètes par php et vont être supprimées dans un futur proche (http://www.php.net/manual/fr/intro.mysql.php).
Votre hébergeur pouvant changer la version de php qu'il utilise, il est donc conseillé de remplacer les fonctions utilisant "mysql" par des fonctions utilisant "mysqli.
Comment connaître la version de php utilisée par votre hébergeur ?
S'il n'existe pas déjà créez un script "info.php" en recopiant le code ci-dessous et en plaçant ce script à la racine de votre site :
<?php
phpinfo();
?>
Connectez vous ensuite sur votre site en ajoutant "/info.php" à l'url.
Exemple : http://toutletempslaniaque.net/info.php
Comment modifier vos scripts ?
- Si vous utiliser un script de connexion nommé par exemple "mysql_connect.php", il doit avoir un contenu de ce genre :
<?php
$server ="localhost";
$user="nom_user_mysql";
$pass="mot_de_passe_mysql";
$db="nom_base_de_données";
mysql_connect($server,$user,$pass) or die ("Erreur SQL : ".mysql_error() );
mysql_select_db($db) or die ("Erreur SQL : ".mysql_error() );
?>
- Si vous n'utilisez pas de script de connexion, il va falloir en créer un et l'appeler au début des scripts nécessitant un appel à votre base de données !!
Pour appeler le script de connexion il faut utiliser la ligne de code suivante :
require("mysql_connect.php"); ou require("mysqli_connect.php");
Le moins fastidieux, est de créer un second script de connexion que vous nommerez par exemple "mysqli_connect.php" et qui devra avoir ce contenu :
<?php
$server ="localhost";
$user = "nom_user_mysql";
$pwd = "mot_de_passe_mysql";
$db ="nom_base_de_données";
$conn=mysqli_connect($server,$user,$pwd,$db);
If(! $conn) {
exit("Echec de la connexion");
}
?>
Vous avez maintenant deux scripts de connexion, l'un avec mysql, l'autre avec mysqli.
Il vous faut maintenant modifier tous les scripts comportant une ou plusieurs requêtes mysql.
Pas de précipitation, commencez déjà par faire un inventaire et listez le. Une fois l'inventaire terminé, ouvrez le premier script à modifier.
Commencez par changer le nom du script de connexion en remplaçant "mysql_connect.php" par "mysqli_connect.php".
Ensuite, faites un rechercher/remplacer "mysql" par "mysqli" et remplacez tous les "mysql" utilisés dans des fonctions.
Puis passez à la requête, vous avez certainement quelque chose de ce genre
$sql = "select machin from truc where bidule > toto";
$query = mysql_query($sql);
Là il faut effectuer un petit ajout :
$sql = "select machin from truc where bidule > toto";
$query = mysqli_query($conn,$sql);
Faites de même pour toutes les requêtes du script.
Une fois les modifications terminées, vous n'avez plus qu'à tester votre script.
L'avantage d'avoir deux scripts de connexion, c'est que vous pouvez effectuer les modifications à votre rythme, jour après jour, script après script, et, une fois tous les scripts inventoriés modifiés, vous pouvez supprimer le script de connexion "mysql_connect.php" devenu inutile.
Bon courage et n'hésitez pas à poser des questions si vous avez des difficultés.
Php fait évoluer ses extensions et ainsi depuis déjà quelques années un nouveau type d'extension "mysqli" (php_mysqli) est apparu, plus performant que les extensions de types "mysql" (php_mysql).
Depuis la version 5.5.0 de php les extensions de type "mysql" sont déclarées obsolètes par php et vont être supprimées dans un futur proche (http://www.php.net/manual/fr/intro.mysql.php).
Votre hébergeur pouvant changer la version de php qu'il utilise, il est donc conseillé de remplacer les fonctions utilisant "mysql" par des fonctions utilisant "mysqli.
Comment connaître la version de php utilisée par votre hébergeur ?
S'il n'existe pas déjà créez un script "info.php" en recopiant le code ci-dessous et en plaçant ce script à la racine de votre site :
<?php
phpinfo();
?>
Connectez vous ensuite sur votre site en ajoutant "/info.php" à l'url.
Exemple : http://toutletempslaniaque.net/info.php
Comment modifier vos scripts ?
- Si vous utiliser un script de connexion nommé par exemple "mysql_connect.php", il doit avoir un contenu de ce genre :
<?php
$server ="localhost";
$user="nom_user_mysql";
$pass="mot_de_passe_mysql";
$db="nom_base_de_données";
mysql_connect($server,$user,$pass) or die ("Erreur SQL : ".mysql_error() );
mysql_select_db($db) or die ("Erreur SQL : ".mysql_error() );
?>
- Si vous n'utilisez pas de script de connexion, il va falloir en créer un et l'appeler au début des scripts nécessitant un appel à votre base de données !!
Pour appeler le script de connexion il faut utiliser la ligne de code suivante :
require("mysql_connect.php"); ou require("mysqli_connect.php");
Le moins fastidieux, est de créer un second script de connexion que vous nommerez par exemple "mysqli_connect.php" et qui devra avoir ce contenu :
<?php
$server ="localhost";
$user = "nom_user_mysql";
$pwd = "mot_de_passe_mysql";
$db ="nom_base_de_données";
$conn=mysqli_connect($server,$user,$pwd,$db);
If(! $conn) {
exit("Echec de la connexion");
}
?>
Vous avez maintenant deux scripts de connexion, l'un avec mysql, l'autre avec mysqli.
Il vous faut maintenant modifier tous les scripts comportant une ou plusieurs requêtes mysql.
Pas de précipitation, commencez déjà par faire un inventaire et listez le. Une fois l'inventaire terminé, ouvrez le premier script à modifier.
Commencez par changer le nom du script de connexion en remplaçant "mysql_connect.php" par "mysqli_connect.php".
Ensuite, faites un rechercher/remplacer "mysql" par "mysqli" et remplacez tous les "mysql" utilisés dans des fonctions.
Puis passez à la requête, vous avez certainement quelque chose de ce genre
$sql = "select machin from truc where bidule > toto";
$query = mysql_query($sql);
Là il faut effectuer un petit ajout :
$sql = "select machin from truc where bidule > toto";
$query = mysqli_query($conn,$sql);
Faites de même pour toutes les requêtes du script.
Une fois les modifications terminées, vous n'avez plus qu'à tester votre script.
L'avantage d'avoir deux scripts de connexion, c'est que vous pouvez effectuer les modifications à votre rythme, jour après jour, script après script, et, une fois tous les scripts inventoriés modifiés, vous pouvez supprimer le script de connexion "mysql_connect.php" devenu inutile.
Bon courage et n'hésitez pas à poser des questions si vous avez des difficultés.