Dans MySQL, l'instruction PREPARE peut utiliser le protocole binaire client/serveur pour transmettre des requêtes contenant des espaces réservés "?" au serveur MySQL ; en utilisant l'instruction PREPARE, vous pouvez exécuter des requêtes avec des espaces réservés pour augmenter la vitesse des requêtes et créer des utilisateurs. " requêtes plus sûres.
L'environnement d'exploitation de ce tutoriel : système windows7, version mysql8, ordinateur Dell G3.
Avant la version 4.1 de MySQL, les requêtes étaient envoyées au serveur MySQL au format texte. Ensuite, le serveur MySQL renvoie les données au client via un protocole texte. MySQL doit analyser entièrement la requête et convertir le jeu de résultats en chaîne avant de le renvoyer au client.
Les protocoles texte ont de sérieux problèmes de performances. Pour résoudre ce problème, MySQL a ajouté une instruction appelée prepare
depuis la version 4.1 pour implémenter de nouvelles fonctionnalités. prepare
语句的来实现一些新功能。
prepare
语句利用客户端/服务器二进制协议。 它将包含占位符(?
)的查询传递给MySQL服务器,如下例所示:
SELECT * FROM products WHERE productCode = ?;
当MySQL使用不同的productcode
值执行此查询时,不必完全解析查询。 因此,这有助于MySQL更快地执行查询,特别是当MySQL多次执行查询时。 因为prepare
语句使用占位符(?
),这有助于避免SQL注入的问题,从而使您的应用程序更安全一些。
为了使用MySQL准备语句,您需要使用其他三个MySQL语句如下:
PREPARE
语句定义的语句。PREPARE
语句。下图说明了如何使用PREPARE
语句:
我们来看一下使用MySQL PREPARE语句的例子。
PREPARE stmt1 FROM 'SELECT productCode, productName FROM products WHERE productCode = ?'; SET @pc = 'S10_1678'; EXECUTE stmt1 USING @pc; DEALLOCATE PREPARE stmt1;
首先,使用PREPARE
语句准备执行语句。我们使用SELECT
语句根据指定的产品代码从products
表查询产品数据。然后再使用问号(?
)作为产品代码的占位符。
接下来,声明了一个产品代码变量@pc
,并将其值设置为S10_1678
。
然后,使用EXECUTE
语句来执行产品代码变量@pc
的准备语句。
最后,我们使用DEALLOCATE PREPARE
来发布PREPARE
prepare
utilise le protocole binaire client/serveur. Il transmet une requête contenant des espaces réservés (?
) au serveur MySQL comme indiqué dans l'exemple suivant :
PREPARE
. PREPARE
. PREPARE
: 🎜🎜🎜PREPARE
pour préparer l'instruction à l'exécution. Nous utilisons l'instruction SELECT
pour interroger les données produit de la table products
en fonction du code produit spécifié. Utilisez ensuite un point d'interrogation (?
) comme espace réservé pour le code produit. 🎜🎜Ensuite, une variable de code produit @pc
est déclarée et sa valeur est définie sur S10_1678
. 🎜🎜Ensuite, utilisez l'instruction EXECUTE
pour exécuter l'instruction préparée de la variable de code produit @pc
. 🎜🎜Enfin, nous utilisons DEALLOCATE PREPARE
pour émettre l'instruction PREPARE
. 🎜🎜【Recommandations associées : 🎜tutoriel vidéo mysql🎜】🎜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!