Bagaimana untuk Menggabungkan Rentetan dengan Nilai dalam Pertanyaan SQL Menggunakan Go?

Patricia Arquette
Lepaskan: 2024-10-30 07:16:02
asal
359 orang telah melayarinya

How to Effectively Concatenate Strings with Values in SQL Queries Using Go?

Membuat Pertanyaan SQL dengan Berkesan dalam Go

Menggabungkan rentetan dengan nilai dalam pertanyaan SQL teks boleh menjadi agak rumit dalam Go. Tidak seperti Python, sintaks pemformatan rentetan Go berkelakuan berbeza, membawa kepada ralat biasa seperti yang ditemui di sini.

Ralat Sintaks Tuple

Coretan kod awal cuba menggunakan Python -style tuple, yang tidak disokong dalam Go. Ini mengakibatkan ralat sintaks:

<code class="go">query := fmt.Sprintf(`SELECT column_name FROM table_name
        WHERE column1_name = %d AND column2_name = %d`,
        (val1, val2))</code>
Salin selepas log masuk

Jenis Tidak Padan

Percubaan untuk menghantar elemen tuple sebagai rentetan juga gagal disebabkan oleh jenis yang tidak sepadan:

<code class="go">query := fmt.Sprintf(`SELECT column_name FROM table_name
        WHERE column1_name = %d AND column2_name = %d`,
        val1, val2)</code>
Salin selepas log masuk

Elakkan Operator Tidak Padan

Menghantar parameter sebagai rentetan dan menggabungkannya dengan operator %s akan berfungsi tetapi tidak disyorkan. Pendekatan ini memperkenalkan risiko ketidakpadanan operator:

<code class="go">query := fmt.Sprintf(`SELECT column_name FROM table_name
        WHERE column1_name = %s AND column2_name = %s`,
        strconv.Itoa(val1), val2)</code>
Salin selepas log masuk

The Go Solution

Untuk menulis dengan betul pertanyaan SQL teks dengan penggabungan nilai dalam Go, gunakan fmt.Sprintf seperti berikut:

<code class="go">query := fmt.Sprintf(`SELECT column_name FROM table_name
        WHERE column1_name = %d AND column2_name = %s`,
        val1, val2)</code>
Salin selepas log masuk

Sintaks ini mengelakkan kelemahan suntikan dan memastikan penukaran jenis yang betul.

Pencegahan Suntikan

Untuk mengelakkan serangan suntikan SQL, sentiasa gunakan pernyataan yang disediakan atau sediakan aksara melarikan diri untuk input yang dibekalkan pengguna.

Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Rentetan dengan Nilai dalam Pertanyaan SQL Menggunakan 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