Самый быстрый способ проверить наличие существующей записи перед вставкой [mysql_errno ()]

Мой вопрос будет использовать электронную почту в качестве примера, но это может относиться ко всему.

Обычно перед регистрацией нового пользователя (включая вставку его / ее электронной почты) я проверяю, существует ли его / ее электронная почта в БД примерно так:

$result = mysql_query("SELECT * FROM Users WHERE email = '".mysql_real_escape_string($email)"';");
if(!$result)
{
    die(mysql_error());
}

if(mysql_num_rows($result) > 0)
{
    die('<p>Email already in DB. <a....>Recover Email</a></p>');
}
else
{
    //insert new user data into Users table
}

Так как я бы ограничилemail поле в моей таблице пользователей будетUNIQUE во всяком случае, не будет ли быстрее попытаться вставить сначала, и если это не удастся, проверьте ошибку? Что-то вроде этого:

$result = mysql_query(...);//insert new user data into Users table
if(!$result)
{
    if(mysql_errno()==$insert_unique_error)
    {
        $error = '<p>Email already in DB. <a....>Recover Email</a></p>';
    }
    else
    {
        $error = mysql_error();
    }
    die($die_str);
}

Проблема в том, что я не знаючто$insert_unique_error должно быть, Это единственные коды ошибокЯ мог бы найти:

Первые два символа значения SQLSTATE указывают на класс ошибки:

Класс = '00' указывает на успех.

Класс = '01' указывает на предупреждение.

Class = '02' означает «не найден». Это относится к контексту курсоров и используется для управления тем, что происходит, когда курсор достигает конца набора данных. Это условие также возникает для операторов SELECT ... INTO var_list, которые не получают строк.

Класс> '02' указывает на исключение.

Ответы на вопрос(2)

Ваш ответ на вопрос