oujood.com

PHP et MySQLi : Utilisation Avancée de fetch_object() pour Traiter les Résultats

Comment utiliser la fonction fetch_object() / mysqli_fetch_object() en PHP pour extraire des résultats de base de données sous forme d'objets. Apprenez les syntaxes orientées objet et procédurales, explorez des exemples pratiques et obtenez des astuces d'utilisation.

La fonction fetch_object() / mysqli_fetch_object() en PHP

PHP Version: 5+

La fonction fetch_object() / mysqli_fetch_object() est utilisée en PHP pour récupérer une ligne de résultat de base de données sous forme d'objet. Elle est couramment utilisée dans les applications basées sur MySQLi, une extension améliorée de PHP pour interagir avec des bases de données MySQL.

Définition et Utilisation

Cette fonction est utilisée pour extraire une ligne de résultat de la requête vers la base de données. La ligne est renvoyée sous forme d'objet, ce qui permet d'accéder aux colonnes de la ligne en tant que propriétés de l'objet.

Syntaxes Orientées Objet et Procédurales

En utilisant la syntaxe orientée objet avec MySQLi :

$mysqli = new mysqli("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if ($mysqli->connect_error) {
die("La connexion a échoué : " . $mysqli->connect_error);
}

$result = $mysqli->query("SELECT nom, prenom FROM utilisateurs");
if ($result) {
while ($objet = $result->fetch_object()) {
echo $objet->nom . " " . $objet->prenom . "<br>";
}
$result->close();
}
$mysqli->close();

En utilisant la syntaxe procédurale avec MySQLi :

$mysqli = mysqli_connect("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if (!$mysqli) {
die("La connexion a échoué : " . mysqli_connect_error());
}

$result = mysqli_query($mysqli, "SELECT nom, prenom FROM utilisateurs");
if ($result) {
while ($objet = mysqli_fetch_object($result)) {
echo $objet->nom . " " . $objet->prenom . "<br>";
}
mysqli_free_result($result);
}
mysqli_close($mysqli);

Valeurs Possibles et Paramètres

La fonction peut prendre un paramètre optionnel qui spécifie la classe de l'objet à retourner. Si ce paramètre est omis, l'objet sera de la classe générique stdClass.

Exemples Pratiques

Imaginons une table "utilisateurs" avec les colonnes "nom" et "prenom". Voici comment la fonction pourrait être utilisée :

Exemple :       Copier le code

<?php
class Utilisateur {
public $nom;
public $prenom;
}

$mysqli = new mysqli("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if ($mysqli->connect_error) {
die("La connexion a échoué : " . $mysqli->connect_error);
}

$result = $mysqli->query("SELECT nom, prenom FROM utilisateurs");
if ($result) {
while ($objet = $result->fetch_object("Utilisateur")) {
echo $objet->nom . " " . $objet->prenom . "<br>";
}
$result->close();
}
$mysqli->close();
?>

Astuces et Conseils

  • Assurez-vous de bien nettoyer vos données provenant de la base de données avant de les afficher pour éviter les attaques par injection SQL.
  • Utilisez des classes personnalisées pour structurer vos données extraites de la base de données, ce qui rendra votre code plus propre et plus maintenable.
  • Libérez toujours les résultats et fermez les connexions après utilisation pour éviter les fuites de mémoire.

Cas d'utilisation pratique avec exemples dans les deux approches (orientée objet et procédurale)

Afficher la liste des utilisateurs depuis une table "utilisateurs"

Approche Orientée Objet :

Exemple :       Copier le code

$mysqli = new mysqli("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if ($mysqli->connect_error) {
	die("La connexion a échoué : " . $mysqli->connect_error);
}

$result = $mysqli->query("SELECT nom, prenom FROM utilisateurs");
if ($result) {
	echo "<ul>";
	while ($objet = $result->fetch_object()) {
		echo "<li>{$objet->nom} {$objet->prenom}</li>";
	}
	echo "</ul>";
	$result->close();
}
$mysqli->close();
?>

Approche Procédurale :

Exemple :       Copier le code

$mysqli = mysqli_connect("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if (!$mysqli) {
	die("La connexion a échoué : " . mysqli_connect_error());
}

$result = mysqli_query($mysqli, "SELECT nom, prenom FROM utilisateurs");
if ($result) {
	echo "<ul>";
	while ($objet = mysqli_fetch_object($result)) {
		echo "<li>{$objet->nom} {$objet->prenom}</li>";
	}
	echo "</ul>";
	mysqli_free_result($result);
}
mysqli_close($mysqli);
?>

Créer un objet personnalisé pour les résultats

Approche Orientée Objet :

Exemple :       Copier le code

class Utilisateur {
	public $nom;
	public $prenom;
}

$mysqli = new mysqli("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if ($mysqli->connect_error) {
	die("La connexion a échoué : " . $mysqli->connect_error);
}

$result = $mysqli->query("SELECT nom, prenom FROM utilisateurs");
if ($result) {
	while ($objet = $result->fetch_object("Utilisateur")) {
		echo "{$objet->prenom} {$objet->nom}
"; } $result->close(); } $mysqli->close(); ?>

Ces exemples illustrent comment utiliser la fonction fetch_object() / mysqli_fetch_object() dans les approches orientée objet et procédurale pour récupérer et afficher les données de la base de données sous forme d'objets. N'oubliez pas d'adapter les informations de connexion et les requêtes SQL selon votre environnement.

Approche Procédurale :

Exemple :       Copier le code

class Utilisateur {
	public $nom;
	public $prenom;
}

$mysqli = mysqli_connect("localhost", "nom_utilisateur", "mot_de_passe", "ma_base_de_donnees");
if (!$mysqli) {
	die("La connexion a échoué : " . mysqli_connect_error());
}

$result = mysqli_query($mysqli, "SELECT nom, prenom FROM utilisateurs");
if ($result) {
	while ($objet = mysqli_fetch_object($result, "Utilisateur")) {
		echo "{$objet->prenom} {$objet->nom}
"; } mysqli_free_result($result); } mysqli_close($mysqli); ?>

En conclusion, la fonction fetch_object() / mysqli_fetch_object() est un outil puissant pour récupérer des données de base de données sous forme d'objets, simplifiant ainsi leur manipulation au sein de votre code PHP.




Voir aussi nos tutoriel :

Balise section

Définit une section dans un document

L'Attribut draggable

Spécifie si un élément est déplaçable ou non

objet multimédia Windows Media Player

La référence de Windows Media Player.
Référence d’objet multimédia Windows Media Player.