In MySQL kann die PREPARE-Anweisung das Client/Server-Binärprotokoll verwenden, um Abfragen mit Platzhaltern „?“ an den MySQL-Server weiterzuleiten ' fragt sicherer.
Die Betriebsumgebung dieses Tutorials: Windows7-System, MySQL8-Version, Dell G3-Computer.
Vor MySQL Version 4.1 wurden Abfragen im Textformat an den MySQL-Server gesendet. Anschließend sendet der MySQL-Server die Daten per Textprotokoll an den Client zurück. MySQL muss die Abfrage vollständig analysieren und den Ergebnissatz in einen String konvertieren, bevor er ihn an den Client zurückgibt.
Textprotokolle weisen schwerwiegende Leistungsprobleme auf. Um dieses Problem zu lösen, hat MySQL seit Version 4.1 eine Anweisung namens prepare
hinzugefügt, um einige neue Funktionen zu implementieren. 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
-Anweisung nutzt das Client/Server-Binärprotokoll. Es übergibt eine Abfrage mit Platzhaltern (?
) an den MySQL-Server, wie im folgenden Beispiel gezeigt:
PREPARE
-Anweisung definierte Anweisung aus. PREPARE
-Anweisung aus. PREPARE
-Anweisung: 🎜🎜🎜PREPARE
-Anweisung, um die Anweisung für die Ausführung vorzubereiten. Wir verwenden die SELECT
-Anweisung, um Produktdaten aus der products
-Tabelle basierend auf dem angegebenen Produktcode abzufragen. Verwenden Sie dann ein Fragezeichen (?
) als Platzhalter für den Produktcode. 🎜🎜Als nächstes wird eine Produktcode-Variable @pc
deklariert und ihr Wert auf S10_1678
gesetzt. 🎜🎜Dann verwenden Sie die Anweisung EXECUTE
, um die vorbereitete Anweisung der Produktcode-Variable @pc
auszuführen. 🎜🎜Schließlich verwenden wir DEALLOCATE PREPARE
, um die PREPARE
-Anweisung auszugeben. 🎜🎜【Verwandte Empfehlung: 🎜MySQL-Video-Tutorial🎜】🎜Das obige ist der detaillierte Inhalt vonWas nützt MySQL Prepare?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!