ホームページ  >  記事  >  バックエンド開発  >  新しいユーザーを作成しようとすると Golang SQL エラーが発生する

新しいユーザーを作成しようとすると Golang SQL エラーが発生する

王林
王林転載
2024-02-12 23:39:101216ブラウズ

尝试创建新用户时出现 Golang SQL 错误

php エディタ Xiaoxin は、Golang を使用して新しいユーザーを作成するときに SQL エラーが発生しました。このエラーにより、ユーザーは正常に登録できず、Web サイトの通常の動作に問題が発生する可能性があります。この問題については、エラーの原因を分析し、解決策を見つける必要があります。この記事では、Golang SQL エラーを引き起こす可能性のあるいくつかの一般的な原因を紹介し、開発者がこの問題を迅速に解決して Web サイトが正常に動作するように支援する対応する解決策を提供します。

質問内容

golangパッケージ vipercobra を使用してユーザーを作成する際、 new_user.go で受け取りました。このエラー。エラーは次のとおりです:

リーリー

私のコードは相互に通信する 2 つのファイルに分割されています。これはツリー階層です:

リーリー

データベースに接続するために、config.go の資格情報を抽出するための yaml ファイル db-creds.yaml を作成しました。ここではエラーは表示されません:

config.go ファイル

リーリー

一番上に記載したエラーは、結果を返すときに発生するエラーです。 cobraflag オプションを実装して、-n の後に name を使用して、新しいユーザーが追加されていることを示します。

new_user.go ファイル

リーリー

このプロジェクトの主な目的は 3 つあります。 1.) 新しいユーザーを作成します。 2.) 任意のユーザーに特定の権限を付与します。 3.) それらを削除します。 それが私の最終目標です。一度に 1 ステップずつ進むと、このエラーが発生しました。誰かが私を助けてくれることを願っています。私は golang を初めて使用し、約 2 週間前に使い始めました。

回避策

go は、何が起こっているかを非常に明確に示します。 cobra の rune メンバーは、コールバックがエラー (成功した場合は nil) を返すことを期待しています。

ここでは、エラーではなく、SQL クエリによって返される特定の型の結果を返しています。これは関数がどのように見えるかです。

リーリー

db.exec コマンドの結果が必要な場合 (実際にはそうではないようです)、cobra コールバックはそのように設計されていないため、必要なすべての処理を cobra コールバックで実行する必要があります。メインスレッドに値を返します。

###エラー処理###

エラー処理に関してコード内で気づいたいくつかの悪い習慣:

    go 関数がエラーを返した場合、(
  • log.fatal

    の場合のように) 予期せぬことが起こってもパニックになったり、プログラムを終了したりしないでください。代わりに、そのエラーリターンを使用してエラーをメインスレッドに伝播し、何をすべきかを決定させます。

  • 一方、何か問題が発生した場合は、結果を返さないでください。失敗した場合、
  • getconnection

    関数はエラーを返すことができるはずです: func getconnection() (*sql.db, error)。このエラーは、単にログに記録して通常どおり処理するのではなく、rune 関数で処理する必要があります。

以上が新しいユーザーを作成しようとすると Golang SQL エラーが発生するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はstackoverflow.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。