Maison > base de données > tutoriel mysql > MySQL peut-il exécuter une chaîne en tant que requête comme eval() de JavaScript ?

MySQL peut-il exécuter une chaîne en tant que requête comme eval() de JavaScript ?

Mary-Kate Olsen
Libérer: 2024-11-29 09:35:16
original
439 Les gens l'ont consulté

Can MySQL Execute a String as a Query Like JavaScript's eval()?

MySQL peut-il exécuter une chaîne en tant que requête ?

Question :

Dans un MySQL Dans cet environnement, la tentative d'exécution d'une procédure stockée qui passe dans un varchar sous forme de requête via EXEC ou CALL s'est avérée infructueuse. Existe-t-il un équivalent MySQL à la fonction eval de JavaScript qui rendrait cela possible ?

Réponse :

Oui, la technique suivante fournit une implémentation MySQL similaire à l'eval de JavaScript :

  1. Définissez une variable SQL (@queryString) en utilisant CONCAT pour générer dynamiquement la chaîne de requête à partir du varchar paramètre.
  2. Préparez une instruction préparée (stmt) basée sur @queryString en utilisant PREPARE.
  3. Exécutez l'instruction préparée (stmt) en utilisant EXECUTE.
  4. Désalouez l'instruction préparée en utilisant DEALLOCATE PREPARE .
  5. Réinitialisez la variable SQL (@asd) sur NULL.

Par exemple :

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;
Copier après la connexion

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!

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