パラメータ変換エラー: クエリではスライスがサポートされていません
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 中国語 Web サイトの他の関連記事を参照してください。