如何在 MySQL 中使用預處理語句?


MySQL 伺服器支援預處理語句,當我們想要執行許多僅在非常小的細節上不同的查詢時,這些語句非常有用。我們可以準備一個語句,然後多次執行它,每次都使用不同的資料值。基本上,MySQL 中的預處理語句利用了客戶端/伺服器二進位制協議。預處理語句提高了效能,因為伺服器只解析一次完整的語句。

以下是使用 MySQL 中預處理語句的步驟:

準備語句

這是第一步,我們將使用 PREPARE 語句準備一個語句。例如,以下是用“Tender”表中的資料準備的語句:

示例

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

執行預處理語句

這是第二步,我們將執行使用“PREPARE”語句準備的語句。例如,我們將使用以下語法執行已準備好的語句 stmt:

示例

EXECUTE stmt USING @variable_name;

這裡 @variable_name 將具有我們想要在 PREPARE 語句中的 ? 位置傳遞的值。在執行預處理語句之前,我們需要使用 SET 語句設定 @variable_name 的值。

釋放預處理語句

這是最後一步,我們將使用 DEALLOCATE 語句釋放預處理語句。例如,我們將使用以下語法釋放預處理語句 stmt:

示例

DEALLOCATE PREPARE stmt;

以下是我們可以使用預處理語句執行的查詢:

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)

更新於: 2020-06-20

450 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.