Dalam MySQL, pernyataan PREPARE boleh menggunakan protokol binari klien/pelayan untuk menghantar pertanyaan yang mengandungi ruang letak "?" menggunakan pernyataan PREPARE untuk melaksanakan pertanyaan dengan ruang letak untuk meningkatkan kelajuan pertanyaan dan membuat pengguna pertanyaan lebih selamat.
Persekitaran pengendalian tutorial ini: sistem windows7, versi mysql8, komputer Dell G3.
Sebelum MySQL versi 4.1, pertanyaan telah dihantar ke pelayan MySQL dalam format teks. Selepas itu, pelayan MySQL mengembalikan data kepada klien menggunakan protokol teks. MySQL mesti menghuraikan pertanyaan sepenuhnya dan menukar set hasil kepada rentetan sebelum mengembalikannya kepada klien.
Protokol teks mempunyai masalah prestasi yang serius. Untuk menyelesaikan masalah ini, MySQL telah menambah pernyataan bernama sejak versi 4.1prepare
untuk melaksanakan beberapa ciri baharu. Penyataan
prepare
menggunakan protokol binari klien/pelayan. Ia menghantar pertanyaan yang mengandungi ruang letak (?
) ke pelayan MySQL, seperti yang ditunjukkan dalam contoh berikut:
SELECT * FROM products WHERE productCode = ?;
Apabila MySQL melaksanakan pertanyaan ini dengan nilai productcode
yang berbeza, pertanyaan itu tidak perlu dihuraikan sepenuhnya. Oleh itu, ini membantu MySQL melaksanakan pertanyaan dengan lebih pantas, terutamanya apabila MySQL melaksanakan pertanyaan beberapa kali. Oleh kerana pernyataan prepare
menggunakan ruang letak (?
), ini membantu mengelakkan isu suntikan SQL, menjadikan aplikasi anda lebih selamat sedikit.
Untuk menggunakan penyata yang disediakan MySQL, anda perlu menggunakan tiga penyata MySQL lain seperti berikut:
PREPARE
. PREPARE
. Rajah berikut menggambarkan cara menggunakan pernyataan PREPARE
:
Mari kita lihat contoh menggunakan pernyataan MySQL PREPARE.
PREPARE stmt1 FROM 'SELECT productCode, productName FROM products WHERE productCode = ?'; SET @pc = 'S10_1678'; EXECUTE stmt1 USING @pc; DEALLOCATE PREPARE stmt1;
Pertama, sediakan pernyataan pelaksanaan menggunakan pernyataan PREPARE
. Kami menggunakan pernyataan SELECT
untuk menanyakan data produk daripada jadual products
berdasarkan kod produk yang ditentukan. Kemudian gunakan tanda soal (?
) sebagai ruang letak untuk kod produk.
Seterusnya, pembolehubah kod produk @pc
diisytiharkan dan nilainya ditetapkan kepada S10_1678
.
Kemudian, gunakan pernyataan EXECUTE
untuk melaksanakan pernyataan yang disediakan untuk pembolehubah kod pengeluaran @pc
.
Akhir sekali, kami menggunakan DEALLOCATE PREPARE
untuk menerbitkan kenyataan PREPARE
.
[Cadangan berkaitan: tutorial video mysql]
Atas ialah kandungan terperinci Apakah kegunaan mysql prepare?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!