Rumah >pembangunan bahagian belakang >Golang >Set SQL Dinamik Golang
Editor PHP Xinyi hari ini memperkenalkan kepada anda alat pembangunan yang berkuasa - set SQL dinamik Golang. Golang ialah bahasa pengaturcaraan moden yang mudah dipelajari, cekap dan pantas. Set SQL Dinamik Golang menggabungkan kelebihan bahasa Golang dan fleksibiliti SQL dinamik untuk menyediakan pembangun cara yang mudah dan berkuasa untuk mengendalikan pertanyaan SQL dan mengendalikan pangkalan data. Dengan menggunakan set SQL dinamik Golang, pembangun boleh membina pertanyaan SQL dinamik dengan lebih mudah dan dapat menjana pernyataan SQL secara dinamik untuk menyesuaikan diri dengan keperluan pertanyaan yang berbeza. Sama ada membangunkan projek kecil atau aplikasi besar, set SQL dinamik Golang boleh membantu pembangun mengendalikan operasi pangkalan data dengan lebih cekap dan meningkatkan kecekapan pembangunan.
Saya ada soalan tentang struktur pertanyaan sqlite. Saya cuba mengemas kini nilai yang dipilih pengguna dalam jadual yang merujuk baris mengikut nama pengguna.
Jadual itu diberi nama data
并具有以下列:username、password、address、notes
.
Saya menggunakan pemacu sql go (_ "github.com/mattn/go-sqlite3"
) dan ini adalah pertanyaan saya:
... stmt, err := db.Prepare("UPDATE Data SET ?=? WHERE USERNAME=?") check(err) res, err := stmt.Exec(splittedQuery[0], splittedQuery[1],splittedQuery[2]) ...
Saya hanya boleh mendapat satu ralat sintaks daripada jujukan ini: near“?”:语法错误
.
Bagaimanakah saya harus menangani masalah ini? Saya minta maaf jika ini adalah soalan remeh, saya baru sahaja pergi dan cuba belajar sesuatu daripadanya.
Terima kasih
Anda tidak boleh melakukan ini dalam sql. Ia juga tidak khusus sqlite. Ruang letak berparameter digunakan hanya untuk nilai, anda tidak boleh menggunakannya untuk menukar struktur pertanyaan. Berikut adalah beberapa pautan dokumentasi untuk rujukan anda:
Apa yang anda mahu lakukan ialah membina pertanyaan dinamik. Anda boleh melakukan ini dengan membina rentetan pertanyaan sendiri:
query := "UPDATE Data SET " + col_name + "=? WHERE USERNAME=?"
Tetapi bergantung pada sumber data column_name, anda perlu berhati-hati dengan suntikan sql (ini adalah topik yang berbeza sama sekali, untuk keseronokan anda boleh lihat https://imgs.xkcd.com/comics/exploits_of_a_mom.png ).
Terdapat juga perpustakaan yang boleh membantu anda mencapai matlamat ini. Sebagai contoh, untuk memberi contoh, anda boleh menyemak ini https://www.php.cn/link/2d16ad1968844a4300e9a490588ff9f8
Atas ialah kandungan terperinci Set SQL Dinamik Golang. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!