Maison > base de données > tutoriel mysql > le corps du texte

Comment instancier dynamiquement des objets PHP en fonction des types de bases de données ?

Susan Sarandon
Libérer: 2024-11-24 15:19:11
original
646 Les gens l'ont consulté

How to Dynamically Instantiate PHP Objects Based on Database Types?

Instancier dynamiquement des objets PHP à partir de types de bases de données

En PHP, il est possible de créer dynamiquement un objet basé sur une chaîne spécifiant un type défini dans une table de base de données. Pour y parvenir, on peut utiliser la requête de base de données et les capacités de création d'objets dynamiques de PHP.

Considérons une table de base de données avec les colonnes et exemples de données suivants :

id | type | propertyVal
----+------+-------------
1 | foo  | lorum
2 | bar  | ipsum
Copier après la connexion

Supposons que nous ayons des types de données PHP. défini comme suit :

class ParentClass {...}
class Foo extends ParentClass {private $id, $propertyVal; ...}
class Bar extends ParentClass {private $id, $propertyVal; ...} 
// ...(more classes)...
Copier après la connexion

Pour créer un objet d'un type défini par la colonne type de la base de données, nous pouvons exploiter les éléments suivants étapes :

  • Exécutez une requête qui sélectionne une ligne avec l'identifiant souhaité.
  • Utilisez mysql_fetch_object() pour récupérer les données sous forme de tableau associatif.
  • Obtenez le tapez la valeur du tableau associatif.
  • Créez dynamiquement un objet de ce type en utilisant la syntaxe : $instance = new $type;.
  • Attribuez les propriétés restantes de l'objet à partir du tableau associatif.

Par exemple :

$result = mysqli_query($conn, "SELECT * FROM table WHERE id = 1");
$row = mysqli_fetch_assoc($result);

$type = $row['type'];
$instance = new $type;

unset($row['type']);  
foreach ($row as $property => $value) {
   $instance->$property = $value;
}
Copier après la connexion

De cette manière, l'objet instance sera créé dynamiquement avec le type spécifié par la colonne de base de données de type et ses propriétés se verront attribuer les valeurs de la ligne sélectionnée.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal