php エディターのバナナの紹介: Gorm では、カスタム文字列タイプに対してスキャン操作を実行しようとすると、エラーが発生する可能性があります。この問題により、スキャナが文字列を正しく解析できなくなり、プログラム エラーが発生する可能性があります。これは、Gorm はデフォルトで `Scan` メソッドを使用して文字列型フィールドをスキャンしますが、カスタム文字列型の場合、`Scan` メソッドが正しく処理できない可能性があるためです。この問題の解決策は、「Value」メソッドを使用して文字列を手動で解析し、プログラムが正しく実行されることを確認することです。こうすることで、Gorm を使用するときにスキャナー エラーの問題が発生するのを回避できます。
次のエンティティを書きました:
リーリーデータベースに行を手動で作成し、カテゴリ配列タイプに category1 と category2 を入力しました。
しかし、データを読み取るときに次のエラーが発生します:
リーリー値のメソッドの例:
type datacategory string const ( datacategory1 datacategory = "category1" datacategory2 datacategory = "category2" ) type data struct { name string `json:"name"` categories []datacategory `json:"category" gorm:"type:text[]"` }
次の例では、rdbms として postgresql を使用しており、datacategory
値にコンマやエスケープされていない一重引用符が含まれていないことを前提としています。
あるいは、value() (driver.value, error) から <code>[]byte
を返すことが機能しない場合、たとえば "Error: malformed array literal: < hex フィールド値表現> (sqlstate 22p02)"
の場合は、戻り値の型として string
を使用してみてください。
以上がGorm はカスタム文字列タイプでスキャナ エラーを返しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。