ホームページ  >  記事  >  データベース  >  MySQL でプリペアドステートメントを使用するにはどうすればよいですか?

MySQL でプリペアドステートメントを使用するにはどうすればよいですか?

WBOY
WBOY転載
2023-09-11 08:09:09806ブラウズ

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

#MySQL サーバーはプリペアド ステートメントをサポートしています。これは、細部が異なるだけの多くのクエリを実行する場合に非常に役立ちます。ステートメントを準備して、毎回異なるデータ値を使用して複数回実行できます。基本的に、MySQL のプリペアド ステートメントはクライアント/サーバー バイナリ プロトコルを利用します。準備されたステートメントは、サーバーが完全なステートメントのみを解析するため、パフォーマンスが向上します。

MySQL でプリペアド ステートメントを使用する手順は次のとおりです -

プリペアド ステートメント

これは、PREPARE ステートメントを使用してステートメントを準備する最初のステップです。 。たとえば、次は「Tender」テーブルのデータを使用して作成されたレポートです。

Example

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

PREPARED ステートメントの実行

これは、 2 番目のステップでは、「PREPARE」ステートメントを使用してステートメントを準備します。たとえば、次の構文を使用してプリペアド ステートメントを実行します。 stmt -

Example

EXECUTE stmt USING @variable_name;

ここで、 @variable_name には ? に渡したい値が入ります。 PREPARE ステートメント内で。準備されたステートメントを実行する前に、SET ステートメントを使用して @variable_name の値を設定する必要があります。

DEALLOCATE PREPARED ステートメント

これは、DEALLOCATE ステートメントを使用して準備されたステートメントを解放する最後のステップです。たとえば、次の構文を使用してプリペアド ステートメント stmt をリリースします。 -

Example

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)
を実行するクエリです。

以上がMySQL でプリペアドステートメントを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。