對有索引的表插入時報錯23000

來源:互聯網
上載者:User
表有一個unique索引(兩個欄位)
對這個表進行add操作時報錯,23000,也就是當資料存在時會報錯,而不像手冊中說的返回flase。
網上有人用異常,不考慮這個。。。。
還有人說在模型裡加入驗證,可是驗證好像同時只能針對一個欄位。。。

如果不用異常的話,有什麼辦法可以讓插入失敗時返回false?

回複內容:

表有一個unique索引(兩個欄位)
對這個表進行add操作時報錯,23000,也就是當資料存在時會報錯,而不像手冊中說的返回flase。
網上有人用異常,不考慮這個。。。。
還有人說在模型裡加入驗證,可是驗證好像同時只能針對一個欄位。。。

如果不用異常的話,有什麼辦法可以讓插入失敗時返回false?

首先聲明,插入失敗返回false貌似做不到,但是還是有辦法解決的。
1、validate是可以針對兩個欄位的,你可以先validate時對該欄位使用unique,再使用$data->create(),如果返回true才進行add操作
2、可以直接先判斷一下資料庫中有沒有當前unique欄位,如果有的話仍然添加應該用save或者add($data,true)

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.