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
364 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!

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