Maison  >  Article  >  base de données  >  Comment utilisons-nous les instructions préparées dans MySQL ?

Comment utilisons-nous les instructions préparées dans MySQL ?

WBOY
WBOYavant
2023-09-11 08:09:09764parcourir

我们如何在 MySQL 中使用准备好的语句?

Le serveur MySQL prend en charge les instructions préparées, ce qui est très utile lorsque nous voulons exécuter de nombreuses requêtes qui ne diffèrent que par de petits détails. Nous pouvons préparer une instruction puis l'exécuter plusieurs fois, à chaque fois avec des valeurs de données différentes. Fondamentalement, les instructions préparées dans MySQL utilisent le protocole binaire client/serveur. Les instructions préparées offrent des performances améliorées car le serveur analyse uniquement une instruction complète.

Voici les étapes pour utiliser les instructions préparées dans MySQL -

Déclarations préparées

Il s'agit de la première étape de notre instruction préparée utilisant l'instruction PREPARE. Par exemple, vous trouverez ci-dessous un rapport rédigé à partir des données de la table "Tender" -

Exemple

PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’

Exécution d'une instruction PREPARED

C'est la deuxième étape que nous effectuerons en utilisant l'instruction préparée "PREPARE". Par exemple, nous exécuterons une instruction préparée en utilisant la syntaxe suivante stmt -

Example

EXECUTE stmt USING @variable_name;

Ici, @variable_name aura la valeur que nous voulons transmettre à ? dans une instruction PREPARE. Avant d'exécuter l'instruction préparée, nous devons définir la valeur de @variable_name à l'aide de l'instruction SET.

Instruction DEALLOCATE PREPARED

C'est la dernière étape où nous publierons l'instruction préparée à l'aide de l'instruction DEALLOCATE. Par exemple, nous publierons l'instruction préparée stmt à l'aide de la syntaxe suivante -

Exemple

DEALLOCATE PREPARE stmt;

Vous trouverez ci-dessous la requête dans laquelle nous exécuterons l'instruction préparée -

mysql> PREPARE stmt FROM 'SELECT tender_value from Tender WHERE
Companyname = ?';
Query OK, 0 rows affected (0.09 sec)
Statement prepared

mysql> SET @A = 'Singla Group.';
Query OK, 0 rows affected (0.00 sec)

mysql> EXECUTE stmt using @A;
+--------------+
| tender_value |
+--------------+
|   220.255997 |
+--------------+
1 row in set (0.07 sec)

mysql> DEALLOCATE PREPARE stmt;
Query OK, 0 rows affected (0.00 sec)

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer