2013-12-11 5 views
0

Я не так учусь с PDO, изучая его, чтобы обновлять свои стандарты PHP, я думал, что у меня есть трещины, однако я продолжаю получать ошибку.PHP, PDO Соединительный оператор

Я использовал это раньше, и он работает, и я ничего не вижу, что изменилось.

 echo "before connect"; 
     $conn = new PDO('mysql:host=hostadd;dbname=dbname', $username, $password); 
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
     echo "past connect"; 

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

Я никогда не сделать это в прошлом подключить эхо, хотя, и я всегда получаю эту ошибку:

before connectError: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known 

Может кто-нибудь сказать мне, что ненормальный ошибка, которую я делаю?

+0

Вы уверены, что 'host = hostadd' верен? – Antony

+0

Это проблема, связанная с сетью. Вы можете связаться с DB-сервером с вашего компьютера? Или, возможно, DNS не разрешает это имя хоста? – Leonardo

+0

Я проверил его как 7 раз, адрес хоста правильный, и я могу получить к нему доступ через phpmyadmin и мою панель управления хостингом. Я также могу получить доступ к веб-сайту. – TryingToBeZen

ответ

0

Эта проблема не имеет ничего общего с PDO. Чтобы подключить интернет-сервис, вы должны указать действительное и действующее имя хоста.

-1

Если вы уже заняты обновлением своих стандартов кодирования, пожалуйста, либо set the PDO error mode to return warnings, либо обработайте Исключения соответственно.

Кроме того, проблема заключается в том, что «hostadd» не является доступным именем хоста на первом месте. Предположительно вы хотите использовать localhost или другой сервер БД, предоставляемый вашим хостинг-провайдером. Если вы хотите сохранить его в значении, вы забыли объединить строку. PDO пытается достичь «hostadd», который потерпит неудачу, как при входе в ваш терминал, и введите

ping hostadd 
+0

** ** ** Исправлено использование блоков try-catch Исключения –

+0

Однако лучше всего делать ** при отладке **. Вы получаете более высокий уровень детализации по сравнению с глобальным обработчиком исключений. –

+0

Кто-то, видимо, обидел вас в этом вопросе. Уровень точно такой же. –

Смежные вопросы