Passer de PHP4 à PHP5 en utilisant l'extension mysqli en style procédural

Dans la plupart des tutoriels présent sur ce site, j'utilise des extensions liées à la version de PHP4 qui, comme vous le savez sans doute, (est) va devenir obsolète suite au passage à PHP5. Nous allons donc voir comment transiter de façon simple d'une version à l'autre en utilisant les extensions MySQLi en style procédural.

​Pour commencer sur de bonnes bases, le mieux est d'utiliser une base de données encodée en UTF-8 (y comprit les champs) et des fichiers PHP encodés également en UTF-8 (sans BOM).
Pour passer une base de données en UTF-8, c'est très simple. Vous allez sur votre interface de MYSQL (phpMyAdmin) et vous devez avoir un onglet du genre "Opérations" ou quelque chose qui y ressemble vous permettant de modifier celle-ci. Cherchez ensuite une liste ou autre permettant de modifier l'interclassement et basculez celui-ci en "utf8_general_ci" puis valider. Ensuite, pour chaque table et chaque champ de votre Bd, vous devez également modifier l'interclassement en "utf8_general_ci".

Si votre site utilise une base de données, il faut également utiliser une fonction de connexion à la BD en UTF-8 comme ci-dessous :
<?php
	function connexion_bd(){
		$nom_du_serveur ="***";
		$nom_de_la_base ="***";
		$nom_utilisateur ="***";
		$passe ="***";
		
		@$link = mysqli_connect($nom_du_serveur,$nom_utilisateur,$passe,$nom_de_la_base);
		@mysqli_set_charset($link,"utf8");
		//printf("Jeu de caractères courant : %s\n", mysqli_character_set_name($link));
		if (mysqli_connect_errno($link)) {
			echo "Echec lors de la connexion à MySQL : " . mysqli_connect_error($link);
			exit();
		}
		return $link;
	}
	$connexion = connexion_bd();
?>
Après c'est très simple, dès que vous tombez sur une extension comportant le terme "mysql_", vous ajoutez simplement un "i" juste après le "l". La fonction devient donc "mysqli_". Ce n'est pas tout, dans certains cas, il faut utiliser la connexion à l'intérieure même de la requête que vous effectuez.

Voici des exemples pour mieux comprendre :

Exemple 1 :
$result = mysql_query("SELECT * FROM CATEGORIES WHERE id = $id"); 
Devient :
$result = mysqli_query($connexion,"SELECT * FROM CATEGORIES WHERE id = $id"); 
Exemple 2 :
mysql_real_escape_string($id)
Devient :
mysqli_real_escape_string($connexion,$id)
Exemple 3 :
while($affiche = mysql_fetch_array($affiche_commentaire))
Devient :
while($affiche = mysqli_fetch_array($affiche_commentaire, MYSQLI_ASSOC))
Exemple 4 :
if(mysql_num_rows($affiche) != 0)
Devient :
if(mysqli_num_rows($affiche) != 0)
Exemple 5 :
	$result = mysql_query("UPDATE CATEGORIES SET 
	nom_categorie='".mysql_real_escape_string($titre)."', 
	description_categorie='".mysql_real_escape_string($description)."' 
	WHERE id = $id");
Devient :
	$result = mysqli_query($connexion,"UPDATE CATEGORIES SET 
	nom_categorie='".mysqli_real_escape_string($connexion,$titre)."', 
	description_categorie='".mysqli_real_escape_string($connexion,$description)."' 
	WHERE id = $id");
Voir/déposer un commentaire (0) | Signaler un problème