Heim > Backend-Entwicklung > Golang > Wie gehe ich mit Slice-Argumenten in lib/pq-SQL-Abfragen um?

Wie gehe ich mit Slice-Argumenten in lib/pq-SQL-Abfragen um?

DDD
Freigeben: 2024-12-19 12:06:10
Original
399 Leute haben es durchsucht

How to Handle Slice Arguments in lib/pq SQL Queries?

Fehler bei der Parameterkonvertierung: Slices werden in der Abfrage nicht unterstützt

Bei der Verwendung von lib/pq zum Ausführen von SQL-Abfragen ist es wichtig sicherzustellen, dass die Parametertypen vorhanden sind unterstützt. In einem Fall ist beim folgenden Code ein Fehler aufgetreten:

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)
Nach dem Login kopieren

Die Fehlermeldung lautete: „sql: Converting argument $1 type: unsupported type []int, a segment of int“. Dieser Fehler macht deutlich, dass lib/pq Slices nicht direkt als Argumente verarbeiten kann.

Lösung: Verwendung von pq.Array

Um dieses Problem zu beheben, kann pq.Array verwendet werden. Diese Funktion wandelt ein Go-Slice in ein Postgres-ARRAY um, das dann von der Abfrage erkannt wird.

Der geänderte Code unten zeigt dies:

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))
Nach dem Login kopieren

Durch die Verwendung von pq.Array wird das Slice in ein ARRAY umgewandelt, sodass es als gültiges Argument in der Abfrage verwendet werden kann. Dies ermöglicht eine nahtlose Ausführung von Abfragen mit Slice-Argumenten.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Slice-Argumenten in lib/pq-SQL-Abfragen um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage