我只有一个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);
?>
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;