2010-12-12 4 views
2

私のPHP/MySQLコードでは、多くのユニークな列キーを持つテーブル(InnoDB)に新しいレコードを挿入します。挿入に失敗した場合(ER_DUP_ENTRYの場合)、I には、どの列の値が一意でないかを知るために、が必要です。mysqlのエラーメッセージを解析する - それは正しい方法ですか?

これを達成するには、取得するエラーメッセージから%dの値を抽出する必要があります。 "キー%dのエントリ '%s'が重複しています。"

これはうまくいくはずですが、解決策が嫌いです。いくつかの文字列を解析/正規表現にマッチさせると、私はいつも避けようとする単純なタスクには複雑さを与えます。今質問:これは正しい方法ですか?もっと良い解決策はありませんか?

答えて

0

エラーメッセージだけでなく、対応するエラーコードも取得できます。たとえば、results for PHP functions containing errnoを参照してください。

+0

エラーメッセージではなくエラーメッセージを意味します。私は主題を変えました。 – spajak

+0

@spajak:それ以外の方法はないと思います。しかし、あなたは 'sprintf'の逆として' sscanf'を試すことができます。 – Gumbo

関連する問題