Вы создаете новый CarListGrabber
с помощью:
CarListGrabber grabber = new CarListGrabber();
он не будет делать инъекции, которые вам нужно вводить, также ваши grabber
, например:
@Autowired
CarListGrabber grabber;
The MySQL documentation is the complete reference for error codes.
Error codes starting at 1000 are server errors. These include errors like:
Error: 1045 SQLSTATE: 28000 (ER_ACCESS_DENIED_ERROR
)
Сообщение: доступ запрещен для пользователя "% s" @ "% s" (используется пароль:% s)
Ошибка: 1049 SQLSTATE: 42000 ( ER_BAD_DB_ERROR
)
Сообщение: неизвестная база данных "% s"
. Коды ошибок, начинающиеся с 2000, являются ошибками клиента . К ним относятся следующие ошибки:
Ошибка: 2005 ( CR_UNKNOWN_HOST
) Сообщение: неизвестный хост сервера MySQL "% s" (% d)
Ошибка: 2003 ( CR_CONN_HOST_ERROR
) Сообщение : Невозможно подключиться к серверу MySQL на «% s» (% d)
Я не собираюсь перечислять все возможные ошибки, потому что они уже задокументированы, и я не знаю, какие из них вам нужно обработать , Например, ошибки 2001 и 2002 характерны для соединений сокетов UNIX, которые могут не иметь отношения к вашей целевой платформе.
Не забудьте использовать PDO :: errorCode ()
и PDO: : errorInfo ()
вместо простого сообщения PDOException
.
Ваш комментарий о getCode ()
- Нет, это не так Кажется, что таким образом поддерживается. Я сделал быстрый тест для var_dump ()
и PDOException
. К сожалению, его код является простым «0», хотя код ошибки и SQLSTATE включены в сообщение об исключении.
Exception :: getCode () является частью базового класса Exception
, так как PHP версии 5.1.0. Это зависит от реализации соответствующего драйвера PDO, чтобы использовать это поле объекта. По крайней мере, для драйвера MySQL они, очевидно, не сделали.
Я не уверен насчет PDO, но вы можете использовать функцию mysql_error ()
, которая возвращает что-то вроде этого:
- Доступ запрещен для пользователя youruser @ yourserver
- Невозможно выбрать базу данных
- ... и т. д.
Вы можете затем отобразить эти ошибки непосредственно в пользователь, или поиграйте, чтобы получить список всех возможных ошибок и непосредственно определить причину ошибки.