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中文网其他相关文章!