Exécuter des chaînes dans MySQL : est-ce possible ?
Dans MySQL, transmettre une variable de chaîne sous forme de requête présente souvent des défis, en particulier lors d'une tentative pour l'exécuter dynamiquement. Contrairement à la commande EXEC de Microsoft SQL Server, MySQL ne dispose pas d'une fonctionnalité similaire. Cependant, il existe une approche alternative pour obtenir cette fonctionnalité.
Pour exécuter dynamiquement une chaîne dans MySQL, vous pouvez suivre les étapes suivantes :
Voici un exemple pour illustrer ce concept :
SET @queryString = ( SELECT CONCAT('INSERT INTO user_group (`group_id`,`user_id`) VALUES ', www.vals) as res FROM ( SELECT GROUP_CONCAT(qwe.asd SEPARATOR ',') as vals FROM ( SELECT CONCAT('(59,', user_id, ')') as asd FROM access WHERE residency = 9 ) as qwe ) as www ); PREPARE stmt FROM @queryString; EXECUTE stmt; DEALLOCATE PREPARE stmt; SET @asd = NULL;
Dans cet exemple, la variable @queryString est préparée en concaténant les parties individuelles de la requête. L'instruction préparée stmt est ensuite exécutée, effectuant dynamiquement l'opération INSERT. Après l'exécution, l'instruction est libérée et la variable @asd est définie sur NULL pour éviter tout effet persistant de la requête dynamique.
En employant cette technique, vous pouvez exécuter efficacement des chaînes dans MySQL, imitant le comportement de eval() en JavaScript et ouvrant des possibilités pour une exécution de requêtes plus dynamique et flexible.
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!