0

現在、ユーザー登録を許可する必要がある REST スタイルの php サーバーを作成しています。基本は機能していますが、現在はエラー処理に焦点を当てています。ユーザー テーブルには、「user_name」フィールドと「user_email」フィールドに一意のインデックスがあります。重複した値を挿入しようとすると、エラーを読み取って次のような文字列を取得できます

キー「user_name」の重複エントリ「noggin182」

これをユーザーに表示できるものに変換する必要があります。挿入が失敗した理由の詳細を簡単に取得する方法はありますか? 文字列を簡単に解析して見つけることができましたが、これは面倒です。更新で文字列が変更されたり、言語が変更されたりすると、問題が発生します。

4

3 に答える 3

1

あなたがやろうとしていると私が思うことをしようとしているなら、別のアプローチを取り、ユーザーをストアドプロシージャに追加するためのロジックを単一のトランザクションで入れ、事前にチェックを行う価値があるかもしれませんユーザーが既に存在するかどうかを確認します。

次に、ユーザーが追加したかどうか、または追加できなかった理由について、独自のロジックを返すことができます。または、おそらく独自のエラーまたは何かを発生させます。

于 2013-05-14T09:42:08.267 に答える
0

通常、エラー メッセージには詳細情報が含まれています。

ERROR 1146 (42S02): Table 'test.no_such_table' doesn't exist

数値エラー コード (1146)。この番号は MySQL 固有のものであり、他のデータベース システムには移植できません。

この数値を返し、対応するテキストをクライアントに表示することもできますが、通常は例外をキャッチして完全なスタック トレースをログに記録し、単純なテキストのみをクライアントに返します。ユーザーは、重複キーの挿入が試みられたことを知りたくありません。保存に失敗したこと、およびサイトの管理者が調査中に問題について警告を受けていることを知りたいということについては何もできないためです。解決策は近日中に..

于 2013-05-14T09:29:19.633 に答える