Walaupun pertanyaan SQL teks menawarkan kaedah mudah untuk menanya pangkalan data, adalah penting untuk memahami pendekatan yang betul untuk menggabungkan literal rentetan dengan nilai untuk mengelakkan ralat sintaks dan tidak padan taip.
Sintaks pertanyaan yang disediakan:
query := `SELECT column_name FROM table_name WHERE column1_name = %d AND column2_name = %d` % (val1, val2)
menghasilkan ralat sintaks disebabkan penggunaan tuple gaya Python. Sebaliknya, gunakan fmt.Sprintf untuk menggabungkan rentetan dan nilai:
query := fmt.Sprintf(`SELECT column_name FROM table_name WHERE column1_name = %d AND column2_name = %d`, val1, val2)
Sebagai alternatif, anda boleh menggunakan db.Query untuk menggabungkan rentetan tanpa interpolasi rentetan:
query := `SELECT column_name FROM table_name WHERE column1_name = %d AND column2_name = %d` rows, err := db.Query(query, val1, val2)
Ingat untuk menangani suntikan kelemahan dengan menggunakan pernyataan yang disediakan dan bukannya interpolasi rentetan.
Atas ialah kandungan terperinci Bagaimana untuk Menggabungkan Rentetan dengan Selamat dalam Pertanyaan SQL dengan Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!