Cabaran:
Banyak tugas pengaturcaraan memerlukan mengekstrak baris data daripada jadual pangkalan data ke dalam format berstruktur. Dalam Go, pakej pangkalan data/sql menyediakan contoh Rows untuk lelaran melalui baris jadual. Walau bagaimanapun, kaedah Imbasan Baris mengharapkan penuding untuk menyasarkan pembolehubah dengan jenis yang diketahui, yang boleh mencabar apabila bilangan dan jenis lajur tidak diketahui terlebih dahulu.
Penyelesaian:
Untuk membaca lajur daripada tika Rows ke dalam rentetan [], anda boleh menggunakan yang berikut pendekatan:
Contoh:
package main import ( "fmt" "io" "database/sql" ) func dumpTable(rows *sql.Rows, out io.Writer) error { colNames, err := rows.Columns() if err != nil { return err } writer := csv.NewWriter(out) writer.Comma = '\t' readCols := make([]interface{}, len(colNames)) writeCols := make([]string, len(colNames)) for i, _ := range writeCols { readCols[i] = &writeCols[i] } for rows.Next() { err := rows.Scan(readCols...) if err != nil { return err } writer.Write(writeCols) } if err = rows.Err(); err != nil { return err } writer.Flush() return nil }
Kod ini membolehkan anda membaca lajur daripada tika Rows dan menukarnya menjadi rentetan [] untuk pemprosesan selanjutnya .
Atas ialah kandungan terperinci Bagaimana untuk Mengekstrak Nilai Lajur daripada Instance Go SQL Rows ke dalam rentetan []?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!