参数转换错误:查询中不支持切片
使用 lib/pq 执行 SQL 查询时,确保参数类型非常重要支持。在一个实例中,以下代码遇到错误:
somevars := []int{1, 2, 3, 4} rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 IN(,,,);", somevars)
错误消息指示:“sql:转换参数 $1 类型:不支持的类型 []int,int 的切片”。此错误强调 lib/pq 无法直接处理切片作为参数。
解决方案:使用 pq.Array
要解决此问题,可以使用 pq.Array。该函数将 Go 切片转换为 Postgres ARRAY,然后由查询识别。
下面修改后的代码演示了这一点:
somevars := []int{1, 2, 3, 4} rows, err = db.Query("SELECT c1,c2 FROM table"+tid+" WHERE c1 = any();", pq.Array(somevars))
通过使用 pq.Array,切片是转换为 ARRAY,使其能够用作查询中的有效参数。这允许使用切片参数无缝执行查询。
以上是如何处理 lib/pq SQL 查询中的切片参数?的详细内容。更多信息请关注PHP中文网其他相关文章!