PHP mysqli ошибка время возврата

0

Могу ли я задать фундаментальный вопрос. Почему, когда я пытаюсь создать новый объект mysqli в php с недопустимой информацией о базе данных (например, неправильное имя базы данных), она не возвращает ошибку постоянно? Я обычно программирую серверные вещи на Java, и что-то вроде этого отбросит провал ошибки, а не через 20 секунд или около того.

Например

$conn = new mysqli($host, $username,    $password, $database);

Спасибо!

  • 0
    Задержка в 20 секунд при указании несуществующей базы данных, безусловно, не является нормальной. Можете ли вы показать точные сообщения об ошибках?
Теги:

2 ответа

2

Если хост, имя пользователя и пароль верны, неправильное имя базы данных будет немедленно возвращено. Однако, если у вас неправильное имя узла, попытка подключения сначала должна быть таймаутом. Неправильные ошибки имени пользователя и пароля также возвращаются немедленно.

  • 0
    Спасибо за это. Имя хоста также неверно. Спасибо, что помогли мне понять немного больше :)
0

Это потому, что запрос недействителен, поскольку важные учетные данные отсутствуют или неверны; или что база данных недоступна.

Если имя хоста, имя пользователя и/или пароль неверны, запрос SQL будет иметь тайм-аут, прежде чем он сможет вернуться. Время стандартного тайм-аута в PHP устанавливается, по-моему, 20 секунд, поэтому оно будет хорошо соответствовать тому, что вы испытываете. Хотя это не произойдет с недопустимым именем базы данных, так как это просто приведет к немедленному сбою запроса.

Чтобы проверить наличие ошибки, вы можете вызвать mysql_error(), чтобы получить спецификацию ошибки с PHP или mysql_errno(), чтобы получить только код ошибки. Стандартное время таймаута можно установить на меньшее значение, отредактировав файл php.ini(если у вас есть к нему доступ); установите значение, за которым следует mysql.connect_timeout (то есть, в php.ini), в любое время, которое вы хотите, в секундах. В нормальных ситуациях время ожидания 5 секунд и более хорошее, возможно, даже неоправданно большое.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню