Penggabungan Pertanyaan SQL Setara dalam Go
Dalam Python, penyatuan rentetan dan nilai dalam pertanyaan SQL adalah mudah menggunakan operator %. Walau bagaimanapun, dalam Go, kaedah ini mungkin tidak berfungsi seperti yang diharapkan.
Untuk menyelesaikan isu ini, pengaturcara Go boleh menggunakan fungsi fmt.Sprintf. Contoh kod berikut menunjukkan cara yang betul untuk menggabungkan rentetan dan nilai:
<code class="go">query := fmt.Sprintf(`SELECT columnA FROM tableA WHERE columnB = %d AND columnB = %s`, SomeNumber, SomeString)</code>
Kaedah ini memastikan bahawa nilai diformat dan dikendalikan dengan betul. Selain itu, adalah penting untuk mengambil perhatian potensi kelemahan serangan suntikan apabila membenamkan data yang disediakan pengguna dalam pertanyaan. Untuk mengurangkan risiko ini, pertimbangkan untuk menggunakan pendekatan berikut:
<code class="go">query := `SELECT column_name FROM table_name WHERE column1_name = %d AND column2_name = %d` rows, err := db.Query(query, Val1, Val2)</code>
Dengan menggunakan hujah berasingan untuk pertanyaan dan nilai, anda boleh menghalang input berniat jahat daripada mengubah struktur atau niat pertanyaan anda.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Rentetan dan Nilai dalam Pertanyaan SQL dalam Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!