2017-01-20 1 views
0

У меня просто есть объект pdo, и я хочу использовать его для подключения к моей онлайн-базе данных, но он не работает, и я не могу найти, почему, спасибо.connexion php mysql не работает

я получил PHP ошибка:

Uncaught исключение 'PDOException' с сообщением 'неправильное имя источника данных'

в моем конструкторе

Мой п.д.о. конструктор:

<?php 

class PdoGsb{ 


     private static $serveur='mysql.hostinger.fr'; 
     private static $bdd='dbname=****';   
     private static $user='****'; 
     private static $mdp='****'; 
     private static $monPdo; 
     private static $monPdoGsb=null; 

    private function __construct(){ 
     PdoGsb::$monPdo = new PDO(PdoGsb::$serveur.';'.PdoGsb::$bdd, PdoGsb::$user, PdoGsb::$mdp); 
     PdoGsb::$monPdo->query("SET CHARACTER SET utf8"); 
     PdoGsb::$monPdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
    } 
    public function _destruct(){ 
     PdoGsb::$monPdo = null; 
    } 

    public static function getPdoGsb(){ 
     if(PdoGsb::$monPdoGsb==null){ 
      PdoGsb::$monPdoGsb= new PdoGsb(); 
     } 
     return PdoGsb::$monPdoGsb; 
    } 

    public function setClient($sexe, $age){ 
     $req="INSERT INTO client (sexe, age) 
     VALUES 
     ('$sexe', '$age');"; 
     $res2= PdoGsb::$monPdo->exec($req); 
    } 

} 


?> 

файл, в который я отправляю свои данные:

<?php 
    require_once ("rees.php"); 

    $pdo = PdoGsb::getPdoGsb(); 


$sexe = "homme"; 
$age = "55"; 


    $pdo->setClient($sexe, $age); 
?> 
+0

http://stackoverflow.com/questions/19740829/uncaught-exception -pdoexception-message-invalid-data-source-name – JustOnUnderMillions

+0

'$ dsn = 'mysql: dbname = dbname; host = somehost';', ваша настройка выглядит неправильно. – JustOnUnderMillions

ответ

1

ИМО стоит поставить соединение в метод getConnection. И тогда вы можете называть его внутри конструктора, но это зависит от вас. Я хотел бы изменить это:

private static $bdd='dbname=****'; 

к этому:

private static $bdd='****'; 

, а затем, попробуйте следующее:

try{ 
PdoGsb::$monPdo = new PDO("mysqlhost:host=" . $serveur ."dbname=". $bdd,$user,$mdp; 
}catch (PDOException $exception) { 
      echo "Failed to connect: " . $exception->getMessage(); 
      exit(); 
} 
return $this->$monPdo;