Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Membina Pertanyaan SQL Teks dengan Selamat dalam Go?

Bagaimana untuk Membina Pertanyaan SQL Teks dengan Selamat dalam Go?

Susan Sarandon
Lepaskan: 2024-10-31 21:26:29
asal
346 orang telah melayarinya

 How to Safely Construct Text SQL Queries in Go?

Cara Betul untuk Membina Pertanyaan SQL Teks dalam Go

Apabila menulis pertanyaan SQL teks dalam Go, anda mungkin menghadapi masalah semasa menggabungkan bahagian rentetan dengan nilai. Kaedah tradisional, seperti menggunakan ruang letak %d dan %s dalam rentetan, boleh membawa kepada ralat sintaks atau tidak sepadan jenis.

Penggabungan Gaya Python

Dalam Python, anda boleh menggabungkan rentetan dan nilai menggunakan operator % dalam rentetan petikan tiga kali ganda. Walau bagaimanapun, pendekatan ini tidak disokong dalam Go.

Go Equivalent

Untuk mencapai penggabungan serupa dalam Go, anda boleh menggunakan fungsi fmt.Sprintf. Ia memerlukan format rentetan sebagai hujah pertama dan hujah tambahan untuk ruang letak:

<code class="go">query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnC = %s`,
                     someNumber, someString)</code>
Salin selepas log masuk

Mencegah Kerentanan Suntikan

Semasa menggabungkan nilai ke dalam pertanyaan, adalah penting untuk mengelakkan kelemahan suntikan. Daripada menggunakan ruang letak dalam rentetan, pertimbangkan untuk menggunakan pernyataan yang disediakan:

<code class="go">query := `SELECT columnA FROM tableA WHERE columnB = ? AND columnC = ?`

rows, err := db.Query(query, val1, val2)</code>
Salin selepas log masuk

Di sini, ? ruang letak mewakili nilai, dan val1 dan val2 dihantar sebagai argumen kepada db.Query. Kaedah ini memastikan keselamatan pertanyaan dan menghalang input berniat jahat daripada menjejaskan pangkalan data.

Atas ialah kandungan terperinci Bagaimana untuk Membina Pertanyaan SQL Teks dengan Selamat dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan