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

Comment puis-je récupérer et utiliser dynamiquement les noms de champs dans les requêtes MySQL ?

Susan Sarandon
Libérer: 2024-11-19 05:30:02
original
347 Les gens l'ont consulté

How Can I Dynamically Retrieve and Use Field Names in MySQL Queries?

Récupération dynamique de nom de champ dans MySQL

Question :

Peut-on récupérer dynamiquement un nom de champ dans MySQL en fonction d'un variable ?

Contexte :

Dans certains scénarios, comme lorsque vous travaillez avec des déclencheurs, il peut être nécessaire de mettre à jour dynamiquement un champ dont le nom n'est pas connu au préalable.

Exemple de code :

SET fieldname = NEW.`name`;
UPDATE table SET fieldname = 1 ; 
Copier après la connexion

Réponse :

Dans MySQL, l'accès direct aux noms de champs à partir de variables n'est pas possible . Il existe cependant deux méthodes pour répondre à ce besoin :

1. Construction externe (si la variable est dans une application externe) :

Si le nom du champ est disponible dans une application externe, telle que PHP, vous pouvez construire l'instruction MySQL de manière dynamique.

Exemple :

$fieldName = "fieldname";
$sql = "SELECT $fieldName FROM table";
Copier après la connexion

2. Déclarations préparées (pour les variables stockées dans MySQL) :

Si le nom du champ est stocké dans une table MySQL, vous pouvez utiliser des instructions préparées pour obtenir le comportement souhaité.

Exemple de code :

SELECT columnname from queries into @colname;
SET @table = 'mytable';
SET @s = CONCAT('SELECT ',@colname,' FROM ', @table);

PREPARE stmt FROM @s;
EXECUTE stmt;
Copier après la connexion

Remarque : Les instructions préparées nécessitent une gestion minutieuse de la substitution de variables et des vulnérabilités potentielles d'injection SQL.

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