我只是有一个pdo对象,我想用它连接到我的在线数据库,但是它无法正常工作,我找不到原因,谢谢。
我收到了php错误:
未捕获的异常' PDOException'消息'无效的数据源名称'
在我的构造函数中
我的pdo构造函数:
<?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 :(得分:1)
IMO将连接放在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;