Невозможно найти PHP определяет для номеров ошибок MySQL

В моем HTML-коде есть выбор с параметрами и кнопка, которая открывает диалоговое окно, позволяющее пользователю добавлять в список параметров [через DB / PHP / jQuery].

В случае, когда они вводят опцию, которая уже существует в БД, я хочу поймать MySQL Duplicate Key ошибка и использовать его для запуска кода, который находит параметр, соответствующий введенному пользователем, и выбирает его для них.

mysqli::$errno returns 1062и мой код прекрасно работает, когда я использую необработанное число.

Но что, если это число изменится в будущем обновлении? Я бы предпочел использовать определение, предоставляемое установкой PHP.

PHP Мануэль намекает на такое определение:

Номера сообщений об ошибках клиента перечислены в заголовке MySQL errmsg.h
файл, номера сообщений об ошибках сервера перечислены в mysqld_error.h. В
Исходный дистрибутив MySQL вы можете найти полный список ошибок
сообщения и номера ошибок в файле Docs / mysqld_error.txt.

Я нашел документ «mysqld_error.txt», который имеет следующее определение:

#define ER_DUP_ENTRY 1062

Существует также следующий документ: http://dev.mysql.com/doc/refman/5.6/en/error-messages-server.html который имеет то же самое определение.

Но когда я пытаюсь использовать это в своем коде PHP, я получаю «Использование неопределенной константы ER_DUP_ENTRY — предполагается, что ‘ER_DUP_ENTRY’заметьте. Я даже пытался MySQLi :: ER_DUP_ENTRY.

Кто-нибудь знает способ сделать это без использования числового значения?

1

Решение

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

if ('ER_DUP_ENTRY') {
#logic here;
}
-3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]