2014-01-27 2 views
8

В разделе «Переполнение стека» задано множество вопросов, но ни один из них не соответствует моему делу.PDO :: __ construct(): php_network_getaddresses: getaddrinfo не удалось: имя или услуга неизвестна

Я использую Lampp с PHP 5.4.7, и он работал нормально, пока я не разработал свою первую программу PDO в PHP.

Когда я использую

$con=new PDO("mysql:host='localhost';dbname='data';charset=utf8",'root','');

для подключения Я получаю этот error.Do Мне нужно активировать что-то в php.ini?

+0

(* связанных *) [Почему PHP PDO DSN другой формат для MySQL по сравнению с PostgreSQL?] (Http://stackoverflow.com/questions/237367/why -is-php-pdo-dsn-a-different-format-for-mysql-versus-postgresql) –

ответ

12

"MySQL: хост = 'локальный'; DbName = 'данные'; Charset = utf8"

Ваш формат DSN неверен, он не должен иметь этих котировок. Это правильный формат

//$con=new PDO($dsn, $user, $password); 
$con=new PDO('mysql:dbname=testdb;host=127.0.0.1','root',''); 

See Manual

+0

: Я благодарю, что это сработало. Котировки были проблемой. –

3

Попробуйте использовать локальный IP вместо: 127.0.0.1 и удалить кавычки вокруг DbName и хозяевах:

$con=new PDO("mysql:host=127.0.0.1;dbname=data;charset=utf8",'root','');

+1

У меня было подобное после недавнего обновления. Мой env содержал «localhost», и я вдруг начал получать ошибку в вопросе. Затем я изменил его на 127.0.0.1, и он работает. Любое объяснение этому? –

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