2

レコードを更新するとき、「更新」の結果を使用して、それが正しく機能したかどうかを判断しています。

$a = $this->db->insert(self::TABLE, $saveData);

$a = 1 は、1 つのレコードを更新したことを意味します。$a = 0 は、何も更新されなかったことを意味します。フォームに何も変更がなければ、0 を取得できます。ただし、エラーが発生した場合は 0 を取得できると想定しています。

何も変更していないため情報が更新されなかったこと、または実際に何らかのエラーが発生したことをユーザーに伝えたいと思います。

エラーが 0 を返すのは正しいですか、それとも -1 を返すのですか?

これを確認するためにエラーを生成しようとすると、魅力的ではなく、率直に言って役に立たない Zend エラーが表示されます。

4

1 に答える 1

1

サーバーエラー、不正な形式のクエリ、または無効なデータが原因でクエリが失敗した場合、戻り値ではなく例外が発生します。だからあなたがやりたいことをするために、あなたはこのようなことをすることができます:

try {
    $a = $this->db->insert(self::TABLE, $saveData);

    if ($a == 0) {
        // return no data was updated
    } else {
        // return data was updated
    }
} catch(Zend_Exception $ex) {
    // query did NOT execute successfully
    // call $ex->getMessage() for the actual error
    // return failure result
}
于 2012-05-02T22:18:10.513 に答える