Heim >Backend-Entwicklung >Golang >Datenbankzeilen in zugeordnete Zeichenfolge einlesen

Datenbankzeilen in zugeordnete Zeichenfolge einlesen

WBOY
WBOYnach vorne
2024-02-09 13:24:18531Durchsuche

Datenbankzeilen in zugeordnete Zeichenfolge einlesen

php-Editor Xiaoxin Das Lesen von Datenbankzeilen in zugeordnete Zeichenfolgen ist eine gängige Datenverarbeitungstechnik. Durch das Lesen und Zuordnen der Zeilendaten der Datenbanktabelle in Zeichenfolgen können Datenmanipulation und -verarbeitung bequem durchgeführt werden. Diese Technologie wird häufig in der Webentwicklung verwendet, um Datenbankabfrageergebnisse zur einfacheren Anzeige und Verwendung in ein besser lesbares Zeichenfolgenformat zu konvertieren. Dies verbessert nicht nur die Effizienz der Datenverarbeitung, sondern vereinfacht auch die Codelogik, wodurch das Programm präziser und einfacher zu warten ist. Das Einlesen von Datenbankzeilen in zugeordnete Zeichenfolgen ist eine wichtige Fähigkeit und ein Muss für Entwickler.

Frageninhalt

Ich möchte die Ergebnisse aus einer einfachen SQL-Tabelle lesen, wie unten gezeigt

Kunde Schlüssel
A 12345
B 6789

Jetzt möchte ich ein map[string]string mit Schlüssel-Wert-Paaren erstellen, die den Zeilenwerten entsprechen, wie folgt:

map[a:12345, b:6789]

Allerdings habe ich Probleme, die Werte aus den Abfrageergebnissen zu entnehmen und die Schlüssel-Wert-Paare dynamisch zu erstellen. Ich werde einen groben Überblick über den Code geben (die SQL-Verbindung war nicht das Problem, ich habe es herausgefunden)

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...
    }
}

Ich bin auch bereit, dies mit einer leeren Struktur zu versuchen, bei der die Felder (dynamisch) zur ersten Spalte der Ergebnismenge und die Werte zur zweiten Spalte der Ergebnismenge werden.

Workaround

Sie können die Werte vorübergehend in zwei Variablen speichern und sie dann in der Karte speichern:

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"

}

Beachten Sie, dass die consumerkey-Variablen außerhalb der Schleife zugewiesen werden, damit wir sie wiederverwenden können. Selbst wenn der Wert eine leere Zeichenfolge ist, wird die Variable bei jeder Iteration überschrieben.

Das obige ist der detaillierte Inhalt vonDatenbankzeilen in zugeordnete Zeichenfolge einlesen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:stackoverflow.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen