如何在MySQL中使用預處理語句?
MySQL伺服器支援預處理語句,當我們想要執行許多隻有細微差別(僅少量細節不同)的查詢時,預處理語句非常有用。我們可以準備一條語句,然後多次執行它,每次使用不同的資料值。基本上,MySQL中的預處理語句利用了客戶端/伺服器二進位制協議。預處理語句提供增強的效能,因為完整的語句只會被伺服器解析一次。
以下是使用MySQL中預處理語句的步驟:
準備語句
這是第一步,我們將使用`PREPARE`語句準備一條語句。例如,以下是使用“Tender”表中的資料準備的語句:
示例
PREPARE stmt FROM ‘Select tender_value from Tender Where Companyname = ?;’
執行預處理語句
這是第二步,我們將使用`EXECUTE`語句執行已使用`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)
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP