Maison >développement back-end >Golang >Comment puis-je utiliser pq.Array pour transmettre des tranches entières comme arguments dans les requêtes SQL ?
Incorporation d'arguments de tranche dans les requêtes SQL avec pq.Array
Lorsque vous tentez d'exécuter une requête SQL qui inclut une tranche d'entiers comme arguments, les utilisateurs peuvent rencontrer l'erreur : "sql : conversion de l'argument $1 type : type non pris en charge []int, une tranche d'int." Pour surmonter ce problème, la fonction pq.Array peut être utilisée.
Problème :
Considérez le code suivant :
somevars := []int{1, 2, 3, 4} rows, err := db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)
Exécuter ceci la requête renvoie l'erreur : "sql : conversion de l'argument $1 type : type non pris en charge []int, une tranche de int."
Solution :
Pour résoudre ce problème, pq.Array peut être utilisé pour encapsuler la tranche d'entiers dans un seul argument :
somevars := []int{1, 2, 3, 4} rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))
La fonction pq.Array convertit la tranche d'entiers en représentation matricielle, lui permettant d'être correctement gérée par la requête SQL. En utilisant pq.Array, les arguments de tranche peuvent être incorporés sans effort dans les requêtes SQL, résolvant ainsi le message d'erreur.
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!