Je voudrais ajouter des attributs personnalisés à une table MySQL que je peux lire via PHP. P>
Ces attributs ne doivent pas interférer avec la table elle-même - elles sont principalement accessibles par code PHP pendant le temps de génération de code et ces attributs doivent résider dans la DB elle-même. P>
quelque chose de similaire dans le concept à la réflexion .NET. p>
MySQL supporte-t-il quelque chose comme ça? P>
merci. p>
3 Réponses :
quel type d'attributs? Depuis que vous mentionnez la réflexion, je suppose que vous essayez de trouver quelque chose à propos de la structure de la table? Avez-vous compris que les commandes qui vous indiquent que la structure de la table sont SQL et renvoient leurs résultats comme une autre requête? Cela vous permet de traiter progressment les résultats de, par exemple, décrivez la table. Est-ce ce que vous cherchez? P>
Je souhaite ajouter mes propres informations à la liste décrivant les rendements de table. Mes propres attributs personnalisés.
Long et court de cela est à peu près: "Vous ne pouvez pas". Gardez une table séparée avec des colonnes pour Table_Name, Field_Name, Attribute_Name, etc.
Lorsque vous Il semble naturel de stocker vos métadonnées personnalisées dans Créez code> ou
alter code> une table, vous pouvez ajouter
commentaires code> - un pour la table dans son ensemble et une pour chaque colonne. Pour récupérer ces commentaires, vous pouvez interroger la base de données
informations_schema code>, spécifiquement les colonnes
informations_schema.columns.Columns_comment code> et
informations_schema.table.table_comments code>.
Information_schema Code> fournit beaucoup de métadonnées à propos de vos bases de données, y compris les données fournies par
Décrire les déclarations code>. Tout utilisateur qui a lu accès à une seule table ou colonne peut lire les métadonnées respectives de
informations_schema code>, mais ne peut pas lire les métadonnées sur les tables dont ils n'ont pas lu l'accès en lecture. p>
informations_schema code>, mais il n'est pas aussi flexible que vous en aurez besoin, car vous ne pouvez stocker qu'un seul
commenter code> par colonne. Si cela est restreint à votre usage ou que vous devez mettre à jour les données régulièrement, vous devez suivre @dark Falcon et créer une table supplémentaire. P>
Suivre de La réponse de Titanoboa , voici comment définir une table $res = $mysqli->query("SELECT `TABLE_COMMENT` FROM `information_schema`.`TABLES` WHERE `TABLE_SCHEMA` = 'my_db_name' AND `TABLE_NAME` = 'my_table_name' LIMIT 1");
$row = $res->fetch_assoc();
$my_comment = $row['TABLE_COMMENT']; // "Test comment."