php小編小編小新將資料庫行讀入映射字串是一種常見的資料處理技術。透過將資料庫表的行資料讀取並映射到字串中,可以方便地進行資料操作和處理。這種技術在Web開發中經常用於將資料庫查詢結果轉換為可讀性更高的字串格式,方便展示和使用。它不僅能提高資料處理的效率,還能簡化程式碼邏輯,讓程式更加簡潔、易於維護。將資料庫行讀入映射字串是一項重要的技能,對於開發者來說是必備的。
我想從一個簡單的 sql 表中讀取結果,如下所示
customer | key |
---|---|
A | 12345 |
B | 6789 |
現在,我想建構一個 map[string]string
,它的鍵值對等於行值,如下所示:
map[a:12345, b:6789]
但是,我在從查詢結果中取出值並動態建立鍵值對時遇到了麻煩。我將提供程式碼的粗略輪廓(sql 連接不是問題,我已經弄清楚了)
import "database/sql" func main() { // some code to connect to mssql... db, _ := sql.open("mssql", connstring) stmt := "select customer, key from tbl" rows, _ := db.query(stmt) defer rows.close() data := make(map[string]string) for rows.next() { // need help here grabbing each row pair and adding them to my map... } }
我也願意嘗試使用空結構來執行此操作,其中欄位成為結果集的第一列(動態),值成為結果集的第二列。
您可以將值暫時儲存在兩個變數中,然後將它們儲存在地圖中:
func main() { stmt := "SELECT customer, key from tbl" rows, _ := db.Query(stmt) defer rows.Close() data := make(map[string]string) var ( consumer string key string ) for rows.Next() { if err := rows.Scan(&consumer, &key); err != nil { // Handle err } data[consumer] = key } for k, v := range data { fmt.Println(k, v) } // "A" "12345" // "B" "6789" }
請注意,consumer
和 key
變數是在循環外部分配的,因此我們可以重複使用它們。即使值是空字串,變數也會在每次迭代時被覆蓋。
以上是將資料庫行讀入映射字串的詳細內容。更多資訊請關注PHP中文網其他相關文章!