Maison > développement back-end > Golang > Comment gérer les arguments Slice dans les requêtes SQL lib/pq ?

Comment gérer les arguments Slice dans les requêtes SQL lib/pq ?

DDD
Libérer: 2024-12-19 12:06:10
original
434 Les gens l'ont consulté

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

Erreur de conversion de paramètre : tranches non prises en charge dans la requête

Lors de l'utilisation de lib/pq pour exécuter des requêtes SQL, il est important de s'assurer que les types de paramètres sont soutenu. Dans un cas, le code suivant a rencontré une erreur :

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)
Copier après la connexion

Le message d'erreur indiquait : "sql : conversion de l'argument $1 type : type non pris en charge []int, une tranche d'int". Cette erreur souligne que lib/pq ne peut pas gérer directement les tranches comme arguments.

Solution : Utilisation de pq.Array

Pour résoudre ce problème, pq.Array peut être utilisé. Cette fonction convertit une tranche Go en un ARRAY Postgres, qui est ensuite reconnu par la requête.

Le code modifié ci-dessous démontre ceci :

somevars := []int{1, 2, 3, 4}
rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))
Copier après la connexion

En utilisant pq.Array, la tranche est transformé en ARRAY, permettant de l'utiliser comme argument valide dans la requête. Cela permet une exécution transparente des requêtes avec des arguments de tranche.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal