3
如果發生MySQL錯誤(例如重複輸入),我想獲取導致問題的字段的名稱。我做這樣的:如何獲取MySQL錯誤參數?
$err = $mysqli->error;
$errno = $mysqli->errno;
...
if ($errno == 1062)
{
$begin = strpos($err, "' for key '") + 11;
$end = strlen($err) - 1;
$arg = substr($err, $begin, $end - $begin);
}
等$arg
商店名稱。這並不是一種超級可靠的方法,但據我所知,不能保證從版本到版本以及數據庫到數據庫的錯誤格式保持不變。
是否有一個更直接的方法來獲得該字段的名稱?
這是一個問題。我會使用存儲整個錯誤消息或通過正則表達式獲取值。您需要知道如何通過錯誤代碼解析錯誤值。如果錯誤可以被新版本的sql引擎改變,這是一個問題。如果你需要,我會使數組errorCode =>正則表達式如何獲得一定的價值。 – daremachine
你爲什麼要這樣做?在一個設計合理的應用程序中,不需要名稱。在同一張桌子上不應該有很多獨特的索引。 –
@YourCommonSense好吧,我可以說我有一張學生表,每個學生都有他們獨特的學生ID,學校電子服務的用戶名,電話號碼,社會安全號碼和電子郵件,例如 – user81993