2014-02-18 3 views
2
Notice: Array to string conversion in C:\xampp\xampp\htdocs\classes\DB.php on line 21 

Warning: PDO::__construct(): php_network_getaddresses: getaddrinfo failed: No such host is known. in C:\xampp\xampp\htdocs\classes\DB.php on line 21 
SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: No such host is known. 

Это дает мне эту ошибку, когда она находится на XAMPP, но когда я помещаю ее на живой сервер, она работает нормально, я знаю, что учетные данные БД верны, я использую текущую версию XAMPP (по состоянию на вчерашний день) для окон и использования Apache 2 на реальном сервере, как с MySql.SQLSTATE [HY000] [2002] php_network_getaddresses: getaddrinfo не удалось: такой хост не известен. Ошибка PHP

Линия 18-25:

// Takes values from 'config.php' and uses them to connect 
private function __construct() { 
    try { 
     $this->_pdo = new PDO('mysql:host=' . Config::get('msql/host') . ';dbname=' . Config::get('mysql/db'), Config::get('mysql/username'), Config::get('mysql/password')); 
    } catch(PDOException $e) { 
     die($e->getMessage()); 
    } 
} 

И это, где массив установлен:

// Sets the config valuses 
$GLOBALS['config'] = array(
    'mysql' => array(
     'host' => '127.0.0.1', 
     'username' => 'root', 
     'password' => 'password', 
     'db' => 'site' 
    ), 
    'remember' => array(
     'cookie_name' => 'hash', 
     'cookie_expiry' => 604800 
    ), 
    'session' => array(
     'session_name' => 'user' 
    ) 
); 

И класс конфигурации:

class Config { 
    public static function get($path = null) { 
     if($path) { 
      $config = $GLOBALS['config']; 
      $path = explode('/', $path); 

      foreach($path as $bit) { 
       if(isset($config[$bit])) { 
        $config = $config[$bit]; 
       } 
      } 

      return $config; 
     } 

     return false; 
    } 
} 
+0

Попробуйте 'var_dump (Config :: get ('msql/host'))' (а также другие), чтобы узнать, что вы получаете. Ясно, что (по крайней мере) один из них является массивом. –

+0

Выбрал ошибку, но появился новый, «Ошибка синтаксиса: ошибка синтаксиса, неожиданность»; в C: \ xampp \ xampp \ htdocs \ classes \ DB.php в строке 21 ". – Carefree4

+1

Вы добавили ';' после строки 'var_dump'? –

ответ

2

Опечатки:

$this->_pdo = new PDO('mysql:host=' . Config::get('msql/host') . ';dbname=' . 
                 ^^^^^---no Y 

$GLOBALS['config'] = array(
    'mysql' => array(
     ^---has a Y 
+2

Не избавился от этой ошибки, но спасибо, ее опоздал, и я едва могу сразу подумать. – Carefree4

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